NAME¶
zmq_cpp - interface between 0MQ and C++ applications
SYNOPSIS¶
#include <zmq.hpp>
c++ [
flags]
files -lzmq [
libraries]
DESCRIPTION¶
This manual page describes how the 0MQ C++ language binding maps to the
underlying 0MQ C library functions.
All 0MQ constants defined by
zmq.h are also available to the C++ language
binding.
The following classes are provided in the
zmq namespace:
Context¶
The
context_t class encapsulates functionality dealing with the
initialisation and termination of a 0MQ
context.
Constructor
context_t::context_t(int io_threads)
Maps to the
zmq_init() function, as described in
zmq_init(3).
Destructor
context_t::~context_t(void)
Maps to the
zmq_term() function, as described in
zmq_term(3).
Methods
Socket¶
The
socket_t class encapsulates a 0MQ socket.
Constructor
socket_t::socket_t(context_t &context, int type)
Maps to the
zmq_socket() function, as described in
zmq_socket(3).
Destructor
socket_t::~socket_t(void)
Calls the
zmq_close() function, as described in
zmq_close(3).
Methods
void socket_t::getsockopt(int option_name, void *option_value, size_t
*option_len)
Maps to the
zmq_getsockopt() function, as described in
zmq_getsockopt(3).
void socket_t::setsockopt(int option_name, const void *option_value, size_t
option_len)
Maps to the
zmq_setsockopt() function, as described in
zmq_setsockopt(3).
void socket_t::bind(const char *endpoint)
Maps to the
zmq_bind() function, as described in
zmq_bind(3).
void socket_t::connect(const char *endpoint)
Maps to the
zmq_connect() function, as described in
zmq_connect(3).
bool socket_t::send(message_t &msg, int flags = 0)
Maps to the
zmq_send() function, as described in
zmq_send(3).
Returns true if message is successfully sent, false if it is not.
bool socket_t::recv(message_t *msg, int flags = 0)
Maps to the
zmq_recv() function, as described in
zmq_recv(3).
Returns true if message is successfully received, false if it is not.
Message¶
The
zmq::message_t class encapsulates the
zmq_msg_t structure and
functions to construct, destruct and manipulate 0MQ messages.
Constructor
message_t::message_t(void)
message_t::message_t(size_t size)
message_t::message_t(void *data, size_t size, free_fn *ffn)
These map to the
zmq_msg_init(),
zmq_msg_init_size() and
zmq_msg_init_data() functions, described in
zmq_msg_init(3),
zmq_msg_init_size(3) and
zmq_msg_init_data(3)
respectively.
Destructor
message_t::~message_t(void)
Calls the
zmq_msg_close() function, as described in
zmq_msg_close(3).
Methods
void *message_t::data (void)
Maps to the
zmq_msg_data() function, as described in
zmq_msg_data(3).
size_t message_t::size (void)
Maps to the
zmq_msg_size() function, as described in
zmq_msg_size(3).
void message_t::copy (message_t *src)
Maps to the
zmq_msg_copy() function, as described in
zmq_msg_copy(3).
void message_t::move (message_t *src)
Maps to the
zmq_msg_move() function, as described in
zmq_msg_move(3).
message_t::rebuild(void)
message_t::rebuild(size_t size)
message_t::rebuild(void *data, size_t size, free_fn *ffn)
Equivalent to calling the
zmq_msg_close() function followed by the
corresponding
zmq_msg_init() function.
int poll (zmq_pollitem_t *items, int nitems, long timeout = -1)
The
poll() function is a namespaced equivalent of the
zmq_poll()
function, as described in
zmq_poll(3).
Note
To obtain a 0MQ
socket for use in a
zmq_pollitem_t structure, you
should cast an instance of the
socket_t class to (void *).
ERROR HANDLING¶
All errors reported by the underlying 0MQ C library functions are automatically
converted to exceptions by the C++ language binding. The
zmq::error_t
class is derived from the
std::exception class and uses the
zmq_strerror() function to convert the error code to human-readable
string.
EXAMPLE¶
zmq::context_t ctx (1);
zmq::socket_t s (ctx, ZMQ_PUB);
s.connect ("tcp://192.168.0.115:5555");
zmq::message_t msg (100);
memset (msg.data (), 0, 100);
s.send (msg);
SEE ALSO¶
zmq(7)
AUTHORS¶
This manual page was written by the 0MQ community.