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
|