def __new__(cls): # Singleton if not cls._instance: # first instance cls.config = Configuration() cls.dct_filter = {} cls.dct_media = {} # {"filter_name" : class_filter} cls.dct_filterchain = {} cls.dct_filter = {} # initialize subscriber server publisher = Publisher(5031) cls.publisher = publisher # self.resource.set_all_publisher(publisher) publisher.start() publisher.register(keys.get_key_execution_list()) publisher.register(keys.get_key_filter_param()) publisher.register(keys.get_key_media_param()) publisher.register(keys.get_key_lst_rec_historic()) publisher.register(keys.get_key_count()) # instance class cls._instance = super(Resource, cls).__new__(cls) return cls._instance
def _add_notification_param(self, param): # send from publisher if not self._publisher: return data = { "execution": self.execution_name, "filter": self.name, "param": param.serialize() } json_data = json.dumps(data) self._publisher.publish(keys.get_key_filter_param(), json_data)
def __init__(self, controller, subscriber): self.controller = controller self.dct_filter = self.controller.get_filter_list() super(WinFilterParam, self).__init__(controller, self.set_value) self.subscriber = subscriber self.shared_info.connect(SharedInfo.GLOBAL_FILTER, self.set_filter) self.shared_info.connect(SharedInfo.GLOBAL_CLOSE_EXEC, self.close_exec) self.shared_info.connect(SharedInfo.GLOBAL_RELOAD_FILTER, self.reload_filter) self.execution_name = None self.filter_name = None self.subscriber.subscribe(keys.get_key_filter_param(), self.call_signal_param)
def close(self): logger.info("Close cmdHandler and close server.") for media_name in self.resource.get_media_name_list(): media = self.resource.get_media(media_name) media.close() media.destroy() self.server_observer.stop() self.publisher.stop() self.publisher.deregister(keys.get_key_execution_list()) self.publisher.deregister(keys.get_key_filter_param()) self.publisher.deregister(keys.get_key_media_param()) self.publisher.deregister(keys.get_key_lst_rec_historic()) self.publisher.deregister(keys.get_key_count())