diff options
author | Martin Sustrik <sustrik@250bpm.com> | 2011-03-24 10:18:06 +0100 |
---|---|---|
committer | Martin Sustrik <sustrik@250bpm.com> | 2011-03-24 10:18:06 +0100 |
commit | d4e83d26014f41eaa1698b4062de88fe7f36a669 (patch) | |
tree | 89735384daf064c4131d8fb20c2fafda12f4710d | |
parent | 7d87db05290e3fd742f381b6f419eb69518ca8cf (diff) |
C++ binding removed from the core
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
-rw-r--r-- | builds/redhat/zeromq.spec | 1 | ||||
-rw-r--r-- | doc/Makefile.am | 4 | ||||
-rw-r--r-- | doc/zmq_cpp.txt | 212 | ||||
-rw-r--r-- | include/zmq.hpp | 289 | ||||
-rw-r--r-- | src/Makefile.am | 2 |
5 files changed, 3 insertions, 505 deletions
diff --git a/builds/redhat/zeromq.spec b/builds/redhat/zeromq.spec index f09f12d..e8316ac 100644 --- a/builds/redhat/zeromq.spec +++ b/builds/redhat/zeromq.spec @@ -96,7 +96,6 @@ This package contains ZeroMQ related development libraries and header files. %files devel %defattr(-,root,root,-) %{_includedir}/zmq.h -%{_includedir}/zmq.hpp %{_includedir}/zmq_utils.h %{_libdir}/libzmq.la diff --git a/doc/Makefile.am b/doc/Makefile.am index 46cb8b0..eec7209 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -3,8 +3,8 @@ MAN3 = zmq_bind.3 zmq_close.3 zmq_connect.3 zmq_init.3 \ zmq_msg_init_data.3 zmq_msg_init_size.3 zmq_msg_move.3 zmq_msg_size.3 \ zmq_poll.3 zmq_recv.3 zmq_send.3 zmq_setsockopt.3 zmq_socket.3 \ zmq_strerror.3 zmq_term.3 zmq_version.3 zmq_getsockopt.3 zmq_errno.3 -MAN7 = zmq.7 zmq_tcp.7 zmq_pgm.7 zmq_epgm.7 zmq_inproc.7 zmq_ipc.7 \ - zmq_cpp.7 +MAN7 = zmq.7 zmq_tcp.7 zmq_pgm.7 zmq_epgm.7 zmq_inproc.7 zmq_ipc.7 + MAN_DOC = $(MAN1) $(MAN3) $(MAN7) MAN_TXT = $(MAN3:%.3=%.txt) diff --git a/doc/zmq_cpp.txt b/doc/zmq_cpp.txt deleted file mode 100644 index 2ecbb55..0000000 --- a/doc/zmq_cpp.txt +++ /dev/null @@ -1,212 +0,0 @@ -zmq_cpp(7) -========== - - -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 -^^^^^^^^^^^ -[verse] -*context_t::context_t(int 'io_threads')* - -Maps to the _zmq_init()_ function, as described in linkzmq:zmq_init[3]. - -Destructor -^^^^^^^^^^ -[verse] -*context_t::~context_t(void)* - -Maps to the _zmq_term()_ function, as described in linkzmq:zmq_term[3]. - - -Methods -^^^^^^^ -None. - - -Socket -~~~~~~ -The 'socket_t' class encapsulates a 0MQ socket. - - -Constructor -^^^^^^^^^^^ -[verse] -*socket_t::socket_t(context_t '&context', int 'type')* - -Maps to the _zmq_socket()_ function, as described in linkzmq:zmq_socket[3]. - - -Destructor -^^^^^^^^^^ -[verse] -*socket_t::~socket_t(void)* - -Calls the _zmq_close()_ function, as described in linkzmq:zmq_close[3]. - - -Methods -^^^^^^^ -[verse] -*void socket_t::getsockopt(int 'option_name', void '*option_value', size_t -'*option_len')* - -Maps to the _zmq_getsockopt()_ function, as described in -linkzmq:zmq_getsockopt[3]. - -[verse] -*void socket_t::setsockopt(int 'option_name', const void '*option_value', size_t -'option_len')* - -Maps to the _zmq_setsockopt()_ function, as described in -linkzmq:zmq_setsockopt[3]. - -[verse] -*void socket_t::bind(const char '*endpoint')* - -Maps to the _zmq_bind()_ function, as described in linkzmq:zmq_bind[3]. - -[verse] -*void socket_t::connect(const char '*endpoint')* - -Maps to the _zmq_connect()_ function, as described in linkzmq:zmq_connect[3]. - -[verse] -*bool socket_t::send(message_t '&msg', int 'flags' = 0)* - -Maps to the _zmq_send()_ function, as described in linkzmq:zmq_send[3]. -Returns true if message is successfully sent, false if it is not. - -[verse] -*bool socket_t::recv(message_t '*msg', int 'flags' = 0)* - -Maps to the _zmq_recv()_ function, as described in linkzmq: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 -^^^^^^^^^^^ -[verse] -*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 linkzmq:zmq_msg_init[3], -linkzmq:zmq_msg_init_size[3] and linkzmq:zmq_msg_init_data[3] respectively. - - -Destructor -^^^^^^^^^^ -[verse] -*message_t::~message_t(void)* - -Calls the _zmq_msg_close()_ function, as described in linkzmq:zmq_msg_close[3]. - - -Methods -^^^^^^^ -[verse] -*void *message_t::data (void)* - -Maps to the _zmq_msg_data()_ function, as described in linkzmq:zmq_msg_data[3]. - -[verse] -*size_t message_t::size (void)* - -Maps to the _zmq_msg_size()_ function, as described in linkzmq:zmq_msg_size[3]. - -[verse] -*void message_t::copy (message_t '*src')* - -Maps to the _zmq_msg_copy()_ function, as described in linkzmq:zmq_msg_copy[3]. - -[verse] -*void message_t::move (message_t '*src')* - -Maps to the _zmq_msg_move()_ function, as described in linkzmq:zmq_msg_move[3]. - -[verse] -*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. - - -Input/output multiplexing -~~~~~~~~~~~~~~~~~~~~~~~~~ - -[verse] -*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 linkzmq: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 --------- -linkzmq:zmq[7] - - -AUTHORS -------- -The 0MQ documentation was written by Martin Sustrik <sustrik@250bpm.com> and -Martin Lucina <mato@kotelna.sk>. diff --git a/include/zmq.hpp b/include/zmq.hpp deleted file mode 100644 index 2189e81..0000000 --- a/include/zmq.hpp +++ /dev/null @@ -1,289 +0,0 @@ -/* - Copyright (c) 2007-2011 iMatix Corporation - Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file - - This file is part of 0MQ. - - 0MQ is free software; you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - 0MQ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef __ZMQ_HPP_INCLUDED__ -#define __ZMQ_HPP_INCLUDED__ - -#include "zmq.h" - -#include <cassert> -#include <cstring> -#include <exception> - -namespace zmq -{ - - typedef zmq_free_fn free_fn; - typedef zmq_pollitem_t pollitem_t; - - class error_t : public std::exception - { - public: - - error_t () : errnum (zmq_errno ()) {} - - virtual const char *what () const throw () - { - return zmq_strerror (errnum); - } - - int num () const - { - return errnum; - } - - private: - - int errnum; - }; - - inline int poll (zmq_pollitem_t *items_, int nitems_, long timeout_ = -1) - { - int rc = zmq_poll (items_, nitems_, timeout_); - if (rc < 0) - throw error_t (); - return rc; - } - - class message_t : private zmq_msg_t - { - friend class socket_t; - - public: - - inline message_t () - { - int rc = zmq_msg_init (this); - if (rc != 0) - throw error_t (); - } - - inline message_t (size_t size_) - { - int rc = zmq_msg_init_size (this, size_); - if (rc != 0) - throw error_t (); - } - - inline message_t (void *data_, size_t size_, free_fn *ffn_, - void *hint_ = NULL) - { - int rc = zmq_msg_init_data (this, data_, size_, ffn_, hint_); - if (rc != 0) - throw error_t (); - } - - inline ~message_t () - { - int rc = zmq_msg_close (this); - assert (rc == 0); - } - - inline void rebuild () - { - int rc = zmq_msg_close (this); - if (rc != 0) - throw error_t (); - rc = zmq_msg_init (this); - if (rc != 0) - throw error_t (); - } - - inline void rebuild (size_t size_) - { - int rc = zmq_msg_close (this); - if (rc != 0) - throw error_t (); - rc = zmq_msg_init_size (this, size_); - if (rc != 0) - throw error_t (); - } - - inline void rebuild (void *data_, size_t size_, free_fn *ffn_, - void *hint_ = NULL) - { - int rc = zmq_msg_close (this); - if (rc != 0) - throw error_t (); - rc = zmq_msg_init_data (this, data_, size_, ffn_, hint_); - if (rc != 0) - throw error_t (); - } - - inline void move (message_t *msg_) - { - int rc = zmq_msg_move (this, (zmq_msg_t*) msg_); - if (rc != 0) - throw error_t (); - } - - inline void copy (message_t *msg_) - { - int rc = zmq_msg_copy (this, (zmq_msg_t*) msg_); - if (rc != 0) - throw error_t (); - } - - inline void *data () - { - return zmq_msg_data (this); - } - - inline size_t size () - { - return zmq_msg_size (this); - } - - private: - - // Disable implicit message copying, so that users won't use shared - // messages (less efficient) without being aware of the fact. - message_t (const message_t&); - void operator = (const message_t&); - }; - - class context_t - { - friend class socket_t; - - public: - - inline context_t (int io_threads_) - { - ptr = zmq_init (io_threads_); - if (ptr == NULL) - throw error_t (); - } - - inline ~context_t () - { - int rc = zmq_term (ptr); - assert (rc == 0); - } - - // Be careful with this, it's probably only useful for - // using the C api together with an existing C++ api. - // Normally you should never need to use this. - inline operator void* () - { - return ptr; - } - - private: - - void *ptr; - - context_t (const context_t&); - void operator = (const context_t&); - }; - - class socket_t - { - public: - - inline socket_t (context_t &context_, int type_) - { - ptr = zmq_socket (context_.ptr, type_); - if (ptr == NULL) - throw error_t (); - } - - inline ~socket_t () - { - close(); - } - - inline operator void* () - { - return ptr; - } - - inline void close() - { - if(ptr == NULL) - // already closed - return ; - int rc = zmq_close (ptr); - if (rc != 0) - throw error_t (); - ptr = 0 ; - } - - inline void setsockopt (int option_, const void *optval_, - size_t optvallen_) - { - int rc = zmq_setsockopt (ptr, option_, optval_, optvallen_); - if (rc != 0) - throw error_t (); - } - - inline void getsockopt (int option_, void *optval_, - size_t *optvallen_) - { - int rc = zmq_getsockopt (ptr, option_, optval_, optvallen_); - if (rc != 0) - throw error_t (); - } - - inline void bind (const char *addr_) - { - int rc = zmq_bind (ptr, addr_); - if (rc != 0) - throw error_t (); - } - - inline void connect (const char *addr_) - { - int rc = zmq_connect (ptr, addr_); - if (rc != 0) - throw error_t (); - } - - inline bool send (message_t &msg_, int flags_ = 0) - { - int rc = zmq_send (ptr, &msg_, flags_); - if (rc == 0) - return true; - if (rc == -1 && zmq_errno () == EAGAIN) - return false; - throw error_t (); - } - - inline bool recv (message_t *msg_, int flags_ = 0) - { - int rc = zmq_recv (ptr, msg_, flags_); - if (rc == 0) - return true; - if (rc == -1 && zmq_errno () == EAGAIN) - return false; - throw error_t (); - } - - private: - - void *ptr; - - socket_t (const socket_t&); - void operator = (const socket_t&); - }; - -} - -#endif diff --git a/src/Makefile.am b/src/Makefile.am index f8d957f..d0644ef 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -3,7 +3,7 @@ lib_LTLIBRARIES = libzmq.la pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libzmq.pc -include_HEADERS = ../include/zmq.h ../include/zmq.hpp ../include/zmq_utils.h +include_HEADERS = ../include/zmq.h ../include/zmq_utils.h if BUILD_PGM noinst_LTLIBRARIES = libpgm.la |