""" This module contains the server-side only code for interfacing with
message queues. Code shared between client and server can be found in
submodules of ``lwr.lwr_client``.
:mod:`lwr.messaging.bind_amqp` Module
------------------------------
.. automodule:: lwr.messaging.bind_amqp
:members:
:undoc-members:
:show-inheritance:
"""
from ..messaging import bind_amqp
from six import itervalues
[docs]def bind_app(app, queue_id, connect_ssl=None):
connection_string = __id_to_connection_string(app, queue_id)
queue_state = QueueState()
for manager in itervalues(app.managers):
bind_amqp.bind_manager_to_queue(manager, queue_state, connection_string, connect_ssl)
return queue_state
[docs]class QueueState(object):
""" Passed through to event loops, should be "non-zero" while queues should
be active.
"""
def __init__(self):
self.active = True
[docs] def deactivate(self):
self.active = False
def __nonzero__(self):
return self.active
def __id_to_connection_string(app, queue_id):
return queue_id