def addListener(self, listener): """ Add a TaurusListener object in the listeners list. If it is the first element and Polling is enabled starts the polling mechanism. If the listener is already registered nothing happens.""" listeners = self._listeners initial_subscription_state = self.__subscription_state ret = TaurusAttribute.addListener(self, listener) if not ret: return ret assert len(listeners) >= 1 if self.__subscription_state == SubscriptionState.Unsubscribed and len(listeners) == 1: self._subscribeEvents() # if initial_subscription_state == SubscriptionState.Subscribed: if len(listeners) > 1 and ( initial_subscription_state == SubscriptionState.Subscribed or self.isPollingActive() ): sm = self.getSerializationMode() if sm == TaurusSerializationMode.Concurrent: Manager().addJob(self.__fireRegisterEvent, None, (listener,)) else: self.__fireRegisterEvent((listener,)) return ret
def addListener(self, listener): """ Add a TaurusListener object in the listeners list. If it is the first listener, it triggers the subscription to the referenced attributes. If the listener is already registered nothing happens.""" initial_subscription_state = self.__subscription_state ret = TaurusAttribute.addListener(self, listener) if not ret: return ret if self.__subscription_state == SubscriptionState.Unsubscribed: for refobj in self._references: # subscribe to the referenced attributes refobj.addListener(self) self.__subscription_state = SubscriptionState.Subscribed assert len(self._listeners) >= 1 # if initial_subscription_state == SubscriptionState.Subscribed: if len(self._listeners) > 1 and \ (initial_subscription_state == SubscriptionState.Subscribed or self.isPollingActive()): Manager().addJob(self.__fireRegisterEvent, None, (listener, )) return ret
def addListener(self, listener): """ Add a TaurusListener object in the listeners list. If it is the first listener, it triggers the subscription to the referenced attributes. If the listener is already registered nothing happens.""" initial_subscription_state = self.__subscription_state ret = TaurusAttribute.addListener(self, listener) if not ret: return ret if self.__subscription_state == SubscriptionState.Unsubscribed: for refobj in self._references: # subscribe to the referenced attributes refobj.addListener(self) self.__subscription_state = SubscriptionState.Subscribed assert len(self._listeners) >= 1 # if initial_subscription_state == SubscriptionState.Subscribed: if len(self._listeners) > 1 and \ (initial_subscription_state == SubscriptionState.Subscribed or self.isPollingActive()): Manager().addJob(self.__fireRegisterEvent, None, (listener,)) return ret
def addListener(self, listener): """ Add a TaurusListener object in the listeners list. If it is the first element and Polling is enabled starts the polling mechanism. If the listener is already registered nothing happens.""" listeners = self._listeners initial_subscription_state = self.__subscription_state ret = TaurusAttribute.addListener(self, listener) if not ret: return ret assert len(listeners) >= 1 if self.__subscription_state == SubscriptionState.Unsubscribed and len( listeners) == 1: self._subscribeEvents() # if initial_subscription_state == SubscriptionState.Subscribed: if len(listeners) > 1 and (initial_subscription_state == SubscriptionState.Subscribed or self.isPollingActive()): sm = self.getSerializationMode() if sm == TaurusSerializationMode.Concurrent: Manager().addJob(self.__fireRegisterEvent, None, (listener, )) else: self.__fireRegisterEvent((listener, )) return ret
def addListener(self, listener): added = TaurusAttribute.addListener(self, listener) if added: v = self.read() self.fireEvent(TaurusEventType.Periodic, v, listeners=[listener]) return added