56 lines
757 B
Ruby
56 lines
757 B
Ruby
module Msf
|
|
module Ui
|
|
|
|
###
|
|
#
|
|
# Driver
|
|
# ------
|
|
#
|
|
# The driver class is an abstract base class that is meant to provide
|
|
# a very general set of methods for 'driving' a user interface.
|
|
#
|
|
###
|
|
class Driver
|
|
|
|
def initialize
|
|
self.datastore = DataStore.new
|
|
end
|
|
|
|
# Executes the user interface, optionally in an asynchronous fashion
|
|
def run
|
|
raise NotImplementedError
|
|
end
|
|
|
|
# Stops executing the user interface
|
|
def stop
|
|
end
|
|
|
|
# Cleans up any resources associated with the UI driver
|
|
def cleanup
|
|
end
|
|
|
|
#
|
|
# Arbitrary state storage
|
|
#
|
|
|
|
# Store a keyed value
|
|
def store(key, value)
|
|
datastore[key] = value
|
|
end
|
|
|
|
# Retrieve a keyed value
|
|
def fetch(key)
|
|
return datastore[key]
|
|
end
|
|
|
|
attr_reader :datastore
|
|
|
|
protected
|
|
|
|
attr_writer :datastore
|
|
|
|
end
|
|
|
|
end
|
|
end
|