def __init__(self, worker_name, beanstalk_host, beanstalk_port, src_store, plugin): super().__init__(beanstalk_host, beanstalk_port) self.logger = logging.getLogger(__name__) self.worker_name = worker_name self.beanstalk = Connection(host=beanstalk_host, port=beanstalk_port) self.src_store = src_store self.sample_api = API() self.plugin = PluginFactory.instance(plugin)
from plugin_factory import PluginFactory from i_plugin import IPlugin class PluginB(IPlugin): def __init__(self): pass @classmethod def name(cls): return "PluginB" def do_something(self): print "I am PluginB doing something" PluginFactory().register_plugin(PluginB().name(), PluginB())
q.put({"status": "DONE", "device": device_ip}) if __name__ == "__main__": if len(sys.argv) < 3: print "Config file location needed! use -f 'configfile' commandline argument." exit() elif sys.argv[1] != "-f": print "Config file location needed! use -f 'configfile' commandline argument." exit() f = open(sys.argv[2], 'r') config = yaml.load(f) f.close() factory = PluginFactory(config["plugins_dir"]) processes = {} output_data = Queue() print time.time() for dev, options in config["devices"].items(): processes[dev] = Process(target=runProcess, args=(output_data, options["device"], options["output"], options["layers"], dev, options["community"])) processes[dev].start() while True: try: if len(processes) == 0: break data = output_data.get() if "status" in data:
from plugin_factory import PluginFactory from plugins import * pf = PluginFactory() loaded_plugins = pf.get_registered_plugins() for loaded_plugin in loaded_plugins: loaded_plugins[loaded_plugin].do_something()
def __init__(self): PluginFactory.__init__(self, "source_")
# standalone plugin demo from plugin_factory import PluginFactory if __name__ == '__main__': import sys if len(sys.argv) != 3: print(sys.argv[0] + " <Plugin> <image file>") sys.exit(0) plugin = PluginFactory.instance(sys.argv[1]) veg = plugin.vegetation_from_file(sys.argv[2]) print("{:.2f}".format(veg))
def __init__(self): PluginFactory.__init__(self, "player_")
from plugin_factory import PluginFactory from plugins import * pf = PluginFactory() some_parms = [ "1", "8", "6" , "10" ] registered_plugins = pf.get_registered_plugins() plugin_instances = [] count = 0 for x in range(0, 2): for p in registered_plugins: plugin_instances.append(pf.create_plugin(p, some_parms[count])) count +=1 for pi in plugin_instances: pi.do_something()
q.put({"status":"DONE", "device":device_ip}) if __name__ == "__main__": if len(sys.argv) < 3: print "Config file location needed! use -f 'configfile' commandline argument." exit() elif sys.argv[1] != "-f": print "Config file location needed! use -f 'configfile' commandline argument." exit() f = open(sys.argv[2], 'r') config = yaml.load(f) f.close() factory = PluginFactory(config["plugins_dir"]) processes = {} output_data = Queue() print time.time() for dev, options in config["devices"].items(): processes[dev] = Process(target=runProcess, args=(output_data, options["device"], options["output"], options["layers"], dev, options["community"])) processes[dev].start() while True: try: if len(processes) == 0: break data = output_data.get() if "status" in data: processes[data["device"]].join() del processes[data["device"]] else:
from plugin_factory import PluginFactory from plugins import * pf = PluginFactory() some_parms = ["1", "8", "6", "10"] registered_plugins = pf.get_registered_plugins() plugin_instances = [] count = 0 for x in range(0, 2): for p in registered_plugins: plugin_instances.append(pf.create_plugin(p, some_parms[count])) count += 1 for pi in plugin_instances: pi.do_something()
def __init__(self): PluginFactory.__init__(self, "event_")
def __init__(self): PluginFactory.__init__(self, "cntrl_")