ZeroEQ  0.9.0
ZeroEQ - Zero Event Queue
zeroeq Namespace Reference

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...
 

Detailed Description

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.

Typedef Documentation

using zeroeq::EventFunc = typedef std::function<void()>

Callback for receival of subscribed event without payload.

Definition at line 56 of file types.h.

using zeroeq::EventPayloadFunc = typedef std::function<void(const void*, size_t)>

Callback for receival of subscribed event with payload.

Definition at line 59 of file types.h.

using zeroeq::HandleFunc = typedef std::function<ReplyData(const void*, size_t)>

Callback for serving a Client::request() in Server::handle().

Definition at line 68 of file types.h.

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).

Definition at line 62 of file types.h.

Variable Documentation

const uint32_t zeroeq::TIMEOUT_INDEFINITE = 0xffffffffu
static

Constant defining 'wait forever' in methods with wait parameters.

Definition at line 78 of file types.h.