| """Main entry point for clients to create a STOMP connection. |
| |
| Provides connection classes for `1.0 <http://stomp.github.io/stomp-specification-1.0.html>`_, |
| `1.1 <http://stomp.github.io/stomp-specification-1.1.html>`_, and |
| `1.2 <http://stomp.github.io/stomp-specification-1.2.html>`_ versions of the STOMP protocol. |
| """ |
| |
| from ambari_stomp.listener import * |
| from ambari_stomp.protocol import * |
| from ambari_stomp.transport import * |
| |
| |
| class BaseConnection(Publisher): |
| """ |
| Base class for all connection classes. |
| """ |
| |
| def __init__(self, transport): |
| """ |
| :param Transport transport: |
| """ |
| self.transport = transport |
| |
| def set_listener(self, name, lstnr): |
| """ |
| :param str name: |
| :param ConnectionListener lstnr: |
| """ |
| self.transport.set_listener(name, lstnr) |
| |
| def remove_listener(self, name): |
| """ |
| :param str name: |
| """ |
| self.transport.remove_listener(name) |
| |
| def get_listener(self, name): |
| """ |
| :param str name: |
| |
| :rtype: ConnectionListener |
| """ |
| return self.transport.get_listener(name) |
| |
| def start(self): |
| self.transport.start() |
| |
| def stop(self): |
| self.transport.stop() |
| |
| def is_connected(self): |
| """ |
| :rtype: bool |
| """ |
| return self.transport.is_connected() |
| |
| def set_receipt(self, receipt_id, value): |
| self.transport.set_receipt(receipt_id, value) |
| |
| def set_ssl(self, *args, **kwargs): |
| self.transport.set_ssl(*args, **kwargs) |
| |
| def get_ssl(self, *args, **kwargs): |
| self.transport.get_ssl(*args, **kwargs) |
| |
| |
| class StompConnection10(BaseConnection, Protocol10): |
| """ |
| Represents a 1.0 connection (comprising transport plus 1.0 protocol class). |
| See :py:class:`stomp.transport.Transport` for details on the initialisation parameters. |
| """ |
| def __init__(self, |
| host_and_ports=None, |
| prefer_localhost=True, |
| try_loopback_connect=True, |
| reconnect_sleep_initial=0.1, |
| reconnect_sleep_increase=0.5, |
| reconnect_sleep_jitter=0.1, |
| reconnect_sleep_max=60.0, |
| reconnect_attempts_max=3, |
| use_ssl=False, |
| ssl_key_file=None, |
| ssl_cert_file=None, |
| ssl_ca_certs=None, |
| ssl_cert_validator=None, |
| wait_on_receipt=False, |
| ssl_version=DEFAULT_SSL_VERSION, |
| timeout=None, |
| keepalive=None, |
| auto_decode=True, |
| auto_content_length=True): |
| transport = Transport(host_and_ports, prefer_localhost, try_loopback_connect, |
| reconnect_sleep_initial, reconnect_sleep_increase, reconnect_sleep_jitter, |
| reconnect_sleep_max, reconnect_attempts_max, use_ssl, ssl_key_file, ssl_cert_file, |
| ssl_ca_certs, ssl_cert_validator, wait_on_receipt, ssl_version, timeout, |
| keepalive, None, auto_decode) |
| BaseConnection.__init__(self, transport) |
| Protocol10.__init__(self, transport, auto_content_length) |
| |
| def disconnect(self, receipt=None, headers=None, **keyword_headers): |
| """ |
| Call the protocol disconnection, and then stop the transport itself. |
| |
| :param str receipt: the receipt to use with the disconnect |
| :param dict headers: a map of any additional headers to send with the disconnection |
| :param keyword_headers: any additional headers to send with the disconnection |
| """ |
| Protocol10.disconnect(self, receipt, headers, **keyword_headers) |
| self.transport.stop() |
| |
| |
| class StompConnection11(BaseConnection, Protocol11): |
| """ |
| Represents a 1.1 connection (comprising transport plus 1.1 protocol class) |
| See :py:class:`stomp.transport.Transport` for details on the initialisation parameters. |
| """ |
| def __init__(self, |
| host_and_ports=None, |
| prefer_localhost=True, |
| try_loopback_connect=True, |
| reconnect_sleep_initial=0.1, |
| reconnect_sleep_increase=0.5, |
| reconnect_sleep_jitter=0.1, |
| reconnect_sleep_max=60.0, |
| reconnect_attempts_max=3, |
| use_ssl=False, |
| ssl_key_file=None, |
| ssl_cert_file=None, |
| ssl_ca_certs=None, |
| ssl_cert_validator=None, |
| wait_on_receipt=False, |
| ssl_version=DEFAULT_SSL_VERSION, |
| timeout=None, |
| heartbeats=(0, 0), |
| keepalive=None, |
| vhost=None, |
| auto_decode=True, |
| auto_content_length=True): |
| transport = Transport(host_and_ports, prefer_localhost, try_loopback_connect, |
| reconnect_sleep_initial, reconnect_sleep_increase, reconnect_sleep_jitter, |
| reconnect_sleep_max, reconnect_attempts_max, use_ssl, ssl_key_file, ssl_cert_file, |
| ssl_ca_certs, ssl_cert_validator, wait_on_receipt, ssl_version, timeout, |
| keepalive, vhost, auto_decode) |
| BaseConnection.__init__(self, transport) |
| Protocol11.__init__(self, transport, heartbeats, auto_content_length) |
| |
| def disconnect(self, receipt=None, headers=None, **keyword_headers): |
| """ |
| Call the protocol disconnection, and then stop the transport itself. |
| |
| :param str receipt: the receipt to use with the disconnect |
| :param dict headers: a map of any additional headers to send with the disconnection |
| :param keyword_headers: any additional headers to send with the disconnection |
| """ |
| Protocol11.disconnect(self, receipt, headers, **keyword_headers) |
| self.transport.stop() |
| |
| |
| class StompConnection12(BaseConnection, Protocol12): |
| """ |
| Represents a 1.2 connection (comprising transport plus 1.2 protocol class). |
| See :py:class:`stomp.transport.Transport` for details on the initialisation parameters. |
| """ |
| def __init__(self, |
| host_and_ports=None, |
| prefer_localhost=True, |
| try_loopback_connect=True, |
| reconnect_sleep_initial=0.1, |
| reconnect_sleep_increase=0.5, |
| reconnect_sleep_jitter=0.1, |
| reconnect_sleep_max=60.0, |
| reconnect_attempts_max=3, |
| use_ssl=False, |
| ssl_key_file=None, |
| ssl_cert_file=None, |
| ssl_ca_certs=None, |
| ssl_cert_validator=None, |
| wait_on_receipt=False, |
| ssl_version=DEFAULT_SSL_VERSION, |
| timeout=None, |
| heartbeats=(0, 0), |
| keepalive=None, |
| vhost=None, |
| auto_decode=True, |
| auto_content_length=True): |
| transport = Transport(host_and_ports, prefer_localhost, try_loopback_connect, |
| reconnect_sleep_initial, reconnect_sleep_increase, reconnect_sleep_jitter, |
| reconnect_sleep_max, reconnect_attempts_max, use_ssl, ssl_key_file, ssl_cert_file, |
| ssl_ca_certs, ssl_cert_validator, wait_on_receipt, ssl_version, timeout, |
| keepalive, vhost, auto_decode) |
| BaseConnection.__init__(self, transport) |
| Protocol12.__init__(self, transport, heartbeats, auto_content_length) |
| |
| def disconnect(self, receipt=None, headers=None, **keyword_headers): |
| """ |
| Call the protocol disconnection, and then stop the transport itself. |
| |
| :param str receipt: the receipt to use with the disconnect |
| :param dict headers: a map of any additional headers to send with the disconnection |
| :param keyword_headers: any additional headers to send with the disconnection |
| """ |
| Protocol12.disconnect(self, receipt, headers, **keyword_headers) |
| self.transport.stop() |