示例#1
0
def send_broadcast_message(payload):
    from broadcast import broadcaster_node
    from broadcast import broadcast_listener
    msg = prepare_broadcast_message(my_id.getLocalID(), payload)
    if broadcaster_node.A():
        broadcaster_node.A('new-outbound-message', (msg, None))
    elif broadcast_listener.A():
        if broadcast_listener.A().state == 'OFFLINE':
            broadcast_listener.A('connect')
        broadcast_listener.A('outbound-message', msg)
    else:
        lg.warn('nor broadcaster_node(), nor broadcast_listener() exists')
        return None
    return msg
示例#2
0
 def stop(self):
     from broadcast import broadcaster_node
     from broadcast import broadcasters_finder
     from broadcast import broadcast_listener
     from main.config import conf
     broadcasters_finder.A('shutdown')
     if broadcaster_node.A() is not None:
         broadcaster_node.A().removeStateChangedCallback(
             self._on_broadcaster_node_switched)
         broadcaster_node.A('shutdown')
     if broadcast_listener.A() is not None:
         broadcast_listener.A().removeStateChangedCallback(
             self._on_broadcast_listener_switched)
         broadcast_listener.A('shutdown')
     conf().removeConfigNotifier('services/broadcasting/routing-enabled')
     return True
示例#3
0
 def _on_broadcast_routing_enabled_disabled(self, path, value, oldvalue,
                                            result):
     from logs import lg
     from broadcast import broadcaster_node
     from broadcast import broadcast_listener
     from broadcast import broadcast_service
     lg.out(
         2,
         'service_broadcasting._on_broadcast_routing_enabled_disabled : %s->%s : %s'
         % (oldvalue, value, path))
     if not value:
         if broadcaster_node.A() is not None:
             broadcaster_node.A().removeStateChangedCallback(
                 self._on_broadcaster_node_switched)
             broadcaster_node.A('shutdown')
         broadcast_listener.A(
             'init', broadcast_service.on_incoming_broadcast_message)
         broadcast_listener.A().addStateChangedCallback(
             self._on_broadcast_listener_switched)
         broadcast_listener.A('connect', self.scope)
     else:
         if broadcast_listener.A() is not None:
             broadcast_listener.A().removeStateChangedCallback(
                 self._on_broadcast_listener_switched)
             broadcast_listener.A('shutdown')
         broadcaster_node.A('init',
                            broadcast_service.on_incoming_broadcast_message)
         broadcaster_node.A().addStateChangedCallback(
             self._on_broadcaster_node_switched)
示例#4
0
 def start(self):
     from twisted.internet.defer import Deferred
     from broadcast import broadcasters_finder
     from broadcast import broadcaster_node
     from broadcast import broadcast_listener
     from broadcast import broadcast_service
     from main.config import conf
     from main import settings
     self.starting_deferred = Deferred()
     broadcasters_finder.A('init')
     if settings.enableBroadcastRouting():
         broadcaster_node.A('init',
                            broadcast_service.on_incoming_broadcast_message)
         broadcaster_node.A().addStateChangedCallback(
             self._on_broadcaster_node_switched)
     else:
         broadcast_listener.A(
             'init', broadcast_service.on_incoming_broadcast_message)
         broadcast_listener.A().addStateChangedCallback(
             self._on_broadcast_listener_switched)
         broadcast_listener.A('connect', self.scope)
     conf().addConfigNotifier('services/broadcasting/routing-enabled',
                              self._on_broadcast_routing_enabled_disabled)
     return self.starting_deferred