Example #1
0
    def __init__(self,
                 item_id,
                 name,
                 reactor=None,
                 adapter=None,
                 parents=None):
        BaseItem.__init__(self,
                          item_id,
                          name,
                          adapter=adapter,
                          parents=parents)
        self._reactor = self._adapter.reactor if reactor is None else reactor
        self._msg_listeners = []
        self._system_errors = []
        self._system_events = []
        self._timer = None

        self._auto_update_discovery = True  #: If True auto update discovery with broadcast discovery messages
        self.discovery = {}  #: The current discovery information to pull from

        self._message_id_generator = message_id_generator(65535, 100)

        # Add this listener so it will be first in the list to pickup errors, warnings and events.
        self.add_listener(self._system_listener)
        self.add_listener(self._discovery_request_listener)

        self._adapter.subscribe(self._discovery_broadcast_listener,
                                type='DISCOVERY_BROADCAST')
    def __init__(self, item_id, name, reactor=None, adapter=None):
        BaseItem.__init__(self, item_id, name, adapter=adapter)
        self._reactor = self._adapter.reactor if reactor is None else reactor
        self._msg_listeners = []
        self._system_errors = []
        self._system_events = []
        self._timer = None

        self._auto_update_discovery = True  #: If True auto update discovery with broadcast discovery messages
        self.discovery = {}  #: The current discovery information to pull from

        self._message_id_generator = message_id_generator(65535, 100)

        # Add this listener so it will be first in the list to pickup errors, warnings and events.
        self.add_listener(self._system_listener)
        self.add_listener(self._discovery_request_listener)

        self._adapter.subscribe(self._discovery_broadcast_listener, type='DISCOVERY_BROADCAST')
Example #3
0
    def get_discovery(self):
        """
        Discovery method. You can override this in a subclass if you want, but it will probably be easier to use the
        self.add_property and self.add_field helper methods and call this method like:
        def get_discovery(self):
            discovery = ParlayStandardItem.get_discovery(self)
            # do other stuff for subclass here
            return discovery
        """

        # get from parent
        discovery = BaseItem.get_discovery(self)
        discovery["TOPIC_FIELDS"] = self._topic_fields
        discovery["CONTENT_FIELDS"] = self._content_fields
        discovery["PROPERTIES"] = sorted([x for x in self._properties.values()], key=lambda v: v['PROPERTY'])
        discovery["DATASTREAMS"] = sorted([x for x in self._datastreams.values()], key=lambda v: v['STREAM'])

        if self.item_type is not None:
            discovery["TYPE"] = self.item_type

        return discovery
    def get_discovery(self):
        """
        Discovery method. You can override this in a subclass if you want, but it will probably be easier to use the
        self.add_property and self.add_field helper methods and call this method like:
        def get_discovery(self):
            discovery = ParlayStandardItem.get_discovery(self)
            # do other stuff for subclass here
            return discovery
        """

        # get from parent
        discovery = BaseItem.get_discovery(self)
        discovery["TOPIC_FIELDS"] = self._topic_fields
        discovery["CONTENT_FIELDS"] = self._content_fields
        discovery["PROPERTIES"] = sorted([x for x in self._properties.values()], key=lambda v: v['PROPERTY'])
        discovery["DATASTREAMS"] = sorted([x for x in self._datastreams.values()], key=lambda v: v['STREAM'])

        if self.item_type is not None:
            discovery["TYPE"] = self.item_type

        return discovery