radio-dish pattern

This commit is contained in:
somdoron
2016-01-27 18:19:14 +02:00
parent 511d701de3
commit b8425a25cf
16 changed files with 831 additions and 219 deletions

View File

@@ -92,6 +92,8 @@
#include "stream.hpp"
#include "server.hpp"
#include "client.hpp"
#include "radio.hpp"
#include "dish.hpp"
#define ENTER_MUTEX() \
if (thread_safe) \
@@ -153,6 +155,12 @@ zmq::socket_base_t *zmq::socket_base_t::create (int type_, class ctx_t *parent_,
case ZMQ_CLIENT:
s = new (std::nothrow) client_t (parent_, tid_, sid_);
break;
case ZMQ_RADIO:
s = new (std::nothrow) radio_t (parent_, tid_, sid_);
break;
case ZMQ_DISH:
s = new (std::nothrow) dish_t (parent_, tid_, sid_);
break;
default:
errno = EINVAL;
return NULL;
@@ -457,6 +465,28 @@ int zmq::socket_base_t::getsockopt (int option_, void *optval_,
return rc;
}
int zmq::socket_base_t::join (const char* group_)
{
ENTER_MUTEX ();
int rc = xjoin (group_);
EXIT_MUTEX();
return rc;
}
int zmq::socket_base_t::leave (const char* group_)
{
ENTER_MUTEX ();
int rc = xleave (group_);
EXIT_MUTEX();
return rc;
}
int zmq::socket_base_t::add_signaler(signaler_t *s_)
{
ENTER_MUTEX ();
@@ -1396,6 +1426,18 @@ bool zmq::socket_base_t::xhas_in ()
return false;
}
int zmq::socket_base_t::xjoin (const char *group_)
{
errno = ENOTSUP;
return -1;
}
int zmq::socket_base_t::xleave (const char *group_)
{
errno = ENOTSUP;
return -1;
}
int zmq::socket_base_t::xrecv (msg_t *)
{
errno = ENOTSUP;