def set_image_observer(self, observer, execution_name, filter_name_old, filter_name_new): status = self.rpc.set_image_observer(execution_name, filter_name_old, filter_name_new) if status: new_key = keys.create_unique_exec_filter_name( execution_name, filter_name_new) old_key = keys.create_unique_exec_filter_name( execution_name, filter_name_old) des_observer = self.dct_link_obs_des_obs[observer] self.subscriber.desubscribe(old_key, des_observer) status = self.subscriber.subscribe(new_key, des_observer) return status
def set_image_observer( self, observer, execution_name, filter_name_old, filter_name_new): status = self.rpc.set_image_observer( execution_name, filter_name_old, filter_name_new) if status: new_key = keys.create_unique_exec_filter_name( execution_name, filter_name_new) old_key = keys.create_unique_exec_filter_name( execution_name, filter_name_old) des_observer = self.dct_link_obs_des_obs[observer] self.subscriber.desubscribe(old_key, des_observer) status = self.subscriber.subscribe(new_key, des_observer) return status
def remove_image_observer(self, observer, execution_name, filter_name): status = self.rpc.remove_image_observer(execution_name, filter_name) key = keys.create_unique_exec_filter_name(execution_name, filter_name) des_observer = self.dct_link_obs_des_obs[observer] self.subscriber.desubscribe(key, des_observer) del self.dct_link_obs_des_obs[observer] return status
def remove_image_observer(self, execution_name, filter_name): key = keys.create_unique_exec_filter_name(execution_name, filter_name) observer = self.dct_observer.get(key, None) if observer is None: logger.warning("Missing image observer : %s" % key) return self.cmd_handler.remove_image_observer(observer, execution_name, filter_name)
def set_image_observer(self, execution_name, filter_name_old, filter_name_new): old_key = keys.create_unique_exec_filter_name( execution_name, filter_name_old) new_key = keys.create_unique_exec_filter_name( execution_name, filter_name_new) observer = self.dct_observer[old_key] new_observer = self._cb_send_image(new_key) if self.cmd_handler.set_image_observer(observer, execution_name, filter_name_old, filter_name_new, new_observer=new_observer): del self.dct_observer[old_key] self.dct_observer[new_key] = new_observer return True return False
def add_image_observer(self, execution_name, filter_name): key = keys.create_unique_exec_filter_name(execution_name, filter_name) observer = self._cb_send_image(key) if self.cmd_handler.add_image_observer(observer, execution_name, filter_name): if key not in self.dct_observer: self.dct_observer[key] = observer return True return False
def set_publisher(self, publisher): self._publisher = publisher # create publisher key execution_name = self.execution_name filter_name = self.name key = keys.create_unique_exec_filter_name(execution_name, filter_name) self._publish_key = key self._publisher.register(key) # create callback publisher self._cb_publish = self._get_cb_publisher()
def add_image_observer(self, observer, execution_name, filter_name): """ Inform the server what filter we want to observe Param : - ref, observer is a reference on method for callback - string, execution_name to select an execution - string, filter_name to select the filter """ status = self.rpc.add_image_observer(execution_name, filter_name) if status: key = keys.create_unique_exec_filter_name( execution_name, filter_name) des_observer = self._deserialize_image(observer) self.dct_link_obs_des_obs[observer] = des_observer status = self.subscriber.subscribe(key, des_observer) return status
def add_image_observer(self, observer, execution_name, filter_name): """ Inform the server what filter we want to observe Param : - ref, observer is a reference on method for callback - string, execution_name to select an execution - string, filter_name to select the filter """ status = self.rpc.add_image_observer(execution_name, filter_name) if status: key = keys.create_unique_exec_filter_name(execution_name, filter_name) des_observer = self._deserialize_image(observer) self.dct_link_obs_des_obs[observer] = des_observer status = self.subscriber.subscribe(key, des_observer) return status
def stop_filterchain_execution(self, execution_name): self._post_command_(locals()) execution = self.dct_exec.get(execution_name, None) if not execution: log.print_function( logger.warning, "The execution %s is already stopped." % execution_name) return False # Remove execution image observer from media observer = execution.get(KEY_MEDIA, None) if observer is None: logger.critical( "Not found the observer about execution %s" % execution_name) return False filterchain = execution.get(KEY_FILTERCHAIN, None) if filterchain is None: logger.critical("Not found the filterchain about \ execution %s" % execution_name) return False observer.remove_observer(filterchain.execute) # deregiste key # TODO move this in filter destroy for filter_name in filterchain.get_filter_name(): key = keys.create_unique_exec_filter_name(execution_name, filter_name) self.publisher.deregister(key) filterchain.destroy() del self.dct_exec[execution_name] # publish removing filterchain self.publisher.publish( keys.get_key_execution_list(), "-%s" % execution_name) return True