ZeroEQ
0.9.0
ZeroEQ - Zero Event Queue
|
Publish-subscribe and request-reply. More...
Namespaces | |
connection | |
Connection broker to introduce remote publishers to a subscriber. | |
http | |
HTTP protocol support. | |
Classes | |
class | Client |
Requests a remote procedure call on a Server. More... | |
class | Monitor |
Monitors a Sender and notifies on events on its socket. More... | |
class | Publisher |
Serves and publishes events, consumed by Subscriber. More... | |
class | Receiver |
Base class for entities receiving data. More... | |
class | Sender |
Interface for entities sending data. More... | |
class | Server |
Serves request from one or more Client(s). More... | |
class | Subscriber |
Subscribes to Publisher to receive events. More... | |
class | URI |
Enhances servus::URI to guarantee the existance of a schema and to allow construction of [host][:port] URIs from string. More... | |
class | Version |
Information about the current ZeroEQ version. More... | |
Typedefs | |
using | URIs = std::vector< URI > |
A vector of URIs. | |
using | EventFunc = std::function< void()> |
Callback for receival of subscribed event without payload. More... | |
using | EventPayloadFunc = std::function< void(const void *, size_t)> |
Callback for receival of subscribed event with payload. More... | |
using | ReplyFunc = std::function< void(const uint128_t &, const void *, size_t)> |
Callback for the reply of a Client::request() (reply ID, reply data). More... | |
using | ReplyData = std::pair< uint128_t, servus::Serializable::Data > |
Return value of Server::handle() function (reply ID, reply data) | |
using | HandleFunc = std::function< ReplyData(const void *, size_t)> |
Callback for serving a Client::request() in Server::handle(). More... | |
typedef int | SocketDescriptor |
Functions | |
static const std::string | DEFAULT_SESSION ("__zeroeq") |
static const std::string | NULL_SESSION ("__null_session") |
static const std::string | TEST_SESSION (servus::TEST_DRIVER) |
static const std::string | ENV_PUB_SESSION ("ZEROEQ_PUB_SESSION") |
static const std::string | ENV_REP_SESSION ("ZEROEQ_SERVER_SESSION") |
std::ostream & | operator<< (std::ostream &os, const URI &uri) |
Variables | |
static const uint32_t | TIMEOUT_INDEFINITE = 0xffffffffu |
Constant defining 'wait forever' in methods with wait parameters. More... | |
Publish-subscribe and request-reply.
A Publisher opens a listening port on the network, and publishes an Event on this port. It announces its session for automatic discovery.
A Subscriber either explicitely subscribes to the publisher port, or uses automatic discovery to find publishers using the same session. Automatic discovery is implemented using zeroconf networking (avahi or Apple Bonjour).
A Server serves requests from a Client. Like publish-subscribe, clients connect to servers using zeroconf discovery or explicit addressing.
A Monitor can be used on any Sender to receive notification on incoming connections.
The connection::Broker and connection::Service may be used to introduce a subscriber to a remote, not zeroconf visible, publisher.
using zeroeq::EventFunc = typedef std::function<void()> |
using zeroeq::EventPayloadFunc = typedef std::function<void(const void*, size_t)> |
using zeroeq::HandleFunc = typedef std::function<ReplyData(const void*, size_t)> |
Callback for serving a Client::request() in Server::handle().
using zeroeq::ReplyFunc = typedef std::function<void(const uint128_t&, const void*, size_t)> |
Callback for the reply of a Client::request() (reply ID, reply data).