blob: 1a7c52ab1e0020fdcfa21892499820b856894143 [file] [log] [blame]
"""
Package of available server implementations and shared functionality/interfaces.
CoilMQ is designed for the Python StompServer reference socket server (specifically
multi-threaded); however, some alternative implementation examples are also provided.
"""
import abc
__authors__ = ['"Hans Lellelid" <hans@xmpl.org>']
__license__ = """Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License."""
class StompConnection(object):
"""
An "interface" for server implementation classes to "implement".
This class serves primarily as a means to document the API that CoilMQ will expect
the connection object to implement.
@ivar reliable_subscriber: Whether this client will ACK all messages.
@type reliable_subscriber: C{bool}
"""
__metaclass__ = abc.ABCMeta
reliable_subscriber = False
@abc.abstractmethod
def send_frame(self, frame):
"""
Uses this connection implementation to send the specified frame to a connected client.
@param frame: The STOMP frame to send.
@type frame: C{stompclient.frame.Frame}
"""