Loading cloudcontrol/common/client/plugins.py 0 → 100644 +47 −0 Original line number Diff line number Diff line """Plugins helpers for Cloud Control clients.""" from cloudcontrol.common.client.tags import TagDB class Base(object): """Example skeleton plugin for clients. If you want to create your own plugin, you may create an object that would quack just like this one or just inherit from this class. """ def __init__(self, *args, **kwargs): """ :param loop: MainLoop instance """ #: MainLoop instance self.main = kwargs.pop('loop') # plugins may define tags (see :mod:`ccnode.tags`) self.tag_db = TagDB() # plugins may define handler functions that would be called by the # server self.rpc_handler = dict() # tag_db and rpc_handler can be implemented as properties if more logic # is needed def __hash__(self): """This method is used when registering a plugin in the main loop. By default, only one instance is allowed. Subclasses can overide this method to change this behaviour. """ return hash(self.__class__.__name__) def start(self): """Used to start pyev watchers.""" pass def stop(self): """Cleanup for plugins, can be used to clean pyev watchers.""" self.main = None # TODO dependencies Loading
cloudcontrol/common/client/plugins.py 0 → 100644 +47 −0 Original line number Diff line number Diff line """Plugins helpers for Cloud Control clients.""" from cloudcontrol.common.client.tags import TagDB class Base(object): """Example skeleton plugin for clients. If you want to create your own plugin, you may create an object that would quack just like this one or just inherit from this class. """ def __init__(self, *args, **kwargs): """ :param loop: MainLoop instance """ #: MainLoop instance self.main = kwargs.pop('loop') # plugins may define tags (see :mod:`ccnode.tags`) self.tag_db = TagDB() # plugins may define handler functions that would be called by the # server self.rpc_handler = dict() # tag_db and rpc_handler can be implemented as properties if more logic # is needed def __hash__(self): """This method is used when registering a plugin in the main loop. By default, only one instance is allowed. Subclasses can overide this method to change this behaviour. """ return hash(self.__class__.__name__) def start(self): """Used to start pyev watchers.""" pass def stop(self): """Cleanup for plugins, can be used to clean pyev watchers.""" self.main = None # TODO dependencies