Module ratchet.bus
This module is designed as a convenience to make requests in the form of a message queue, with simple responses being returned to the sender. Two different forms exist, allowing sharing either between threads in the same ratchet context or sharing across a socket. This can be especially useful as an abstraction when two systems may be running separately or running side-by-side in the same process.
Functions
new_local () | Creates a new, local message bus. |
new_server (socket, request_from_bus, response_to_bus, a, request_to_bus, response_from_bus) | Creates the client-side of a socket-based message bus. |
new_server (socket, request_from_bus, response_to_bus, a, request_to_bus, response_from_bus) | Creates the client-side of a socket-based message bus. |
recv_request (self) | Receives a request from the server-side of a message bus. |
send_request (self, request) | Sends a request from the client-side of a message bus. |
Functions
- new_local ()
-
Creates a new, local message bus. Waiting for a request in a thread will pause that thread until another sends a request, and waiting for a response will pause until one is sent. Requests are queued if a thread is not actively waiting for them. The same bus object, created by this function, is used for both the client- and server-sides of the message bus.
Return value:
a new local message bus, returned twice. - new_server (socket, request_from_bus, response_to_bus, a, request_to_bus, response_from_bus)
-
Creates the client-side of a socket-based message bus. After sending a request, the client-side will need wait to receive a response.
Parameters
- socket:
- request_from_bus:
- response_to_bus:
- a: socket already connected to a server.
- request_to_bus: an arbitrary function that converts a request object into a string.
- response_from_bus: an arbitrary function that accepts a string and converts it into a response object.
- new_server (socket, request_from_bus, response_to_bus, a, request_to_bus, response_from_bus)
-
Creates the client-side of a socket-based message bus. After sending a request, the client-side will need wait to receive a response.
Parameters
- socket:
- request_from_bus:
- response_to_bus:
- a: socket already connected to a server.
- request_to_bus: an arbitrary function that converts a request object into a string.
- response_from_bus: an arbitrary function that accepts a string and converts it into a response object.
- recv_request (self)
-
Receives a request from the server-side of a message bus. This function can be used by a local message bus object created with
new_local()
or a server-side socket message bus object created withnew_server()
.Parameters
- self: the server-side of a message bus.
Return value:
aratchet.bus.transaction
object on which to send the response, followed by the request object received. - send_request (self, request)
-
Sends a request from the client-side of a message bus. This function can be used by a local message bus object created with
new_local()
or a client-side message bus object created withnew_client()
.Parameters
- self: the client-side of a message bus.
- request: a request object to send.
Return value:
aratchet.bus.transaction
object on which to receive the response.