summaryrefslogtreecommitdiff
path: root/src/push.cpp
diff options
context:
space:
mode:
authorPieter Hintjens <ph@imatix.com>2010-08-04 14:38:56 +0200
committerPieter Hintjens <ph@imatix.com>2010-08-04 14:38:56 +0200
commit11a410b65827a3958fb5f417c29e95c1953a0b42 (patch)
tree61b56b2fe34f2318c4fb3a1c56682aedee295bad /src/push.cpp
parent544b36da68729daffefa8f40d2efed5945851a01 (diff)
Renamed ZMQ_UPSTREAM to ZMQ_PULL, and ZMQ_DOWNSTREAM to ZMQ_PUSH. Left the old
definitions as aliases, to be removed in release 3.0. Also renamed the source files implementing these two socket types. This change does not break existing applications nor bindings, but allows us to fix the documentation and user guide now, rather than keeping the old (confusing) names.
Diffstat (limited to 'src/push.cpp')
-rw-r--r--src/push.cpp101
1 files changed, 101 insertions, 0 deletions
diff --git a/src/push.cpp b/src/push.cpp
new file mode 100644
index 0000000..522101f
--- /dev/null
+++ b/src/push.cpp
@@ -0,0 +1,101 @@
+/*
+ Copyright (c) 2007-2010 iMatix Corporation
+
+ This file is part of 0MQ.
+
+ 0MQ is free software; you can redistribute it and/or modify it under
+ the terms of the Lesser GNU 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
+ Lesser GNU General Public License for more details.
+
+ You should have received a copy of the Lesser GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "../include/zmq.h"
+
+#include "push.hpp"
+#include "err.hpp"
+#include "pipe.hpp"
+
+zmq::push_t::push_t (class app_thread_t *parent_) :
+ socket_base_t (parent_)
+{
+ options.requires_in = false;
+ options.requires_out = true;
+}
+
+zmq::push_t::~push_t ()
+{
+}
+
+void zmq::push_t::xattach_pipes (class reader_t *inpipe_,
+ class writer_t *outpipe_, const blob_t &peer_identity_)
+{
+ zmq_assert (!inpipe_ && outpipe_);
+ lb.attach (outpipe_);
+}
+
+void zmq::push_t::xdetach_inpipe (class reader_t *pipe_)
+{
+ // There are no inpipes, so this function shouldn't be called at all.
+ zmq_assert (false);
+}
+
+void zmq::push_t::xdetach_outpipe (class writer_t *pipe_)
+{
+ zmq_assert (pipe_);
+ lb.detach (pipe_);
+}
+
+void zmq::push_t::xkill (class reader_t *pipe_)
+{
+ // There are no inpipes, so this function shouldn't be called at all.
+ zmq_assert (false);
+}
+
+void zmq::push_t::xrevive (class reader_t *pipe_)
+{
+ // There are no inpipes, so this function shouldn't be called at all.
+ zmq_assert (false);
+}
+
+void zmq::push_t::xrevive (class writer_t *pipe_)
+{
+ lb.revive (pipe_);
+}
+
+int zmq::push_t::xsetsockopt (int option_, const void *optval_,
+ size_t optvallen_)
+{
+ // No special option for this socket type.
+ errno = EINVAL;
+ return -1;
+}
+
+int zmq::push_t::xsend (zmq_msg_t *msg_, int flags_)
+{
+ return lb.send (msg_, flags_);
+}
+
+int zmq::push_t::xrecv (zmq_msg_t *msg_, int flags_)
+{
+ errno = ENOTSUP;
+ return -1;
+}
+
+bool zmq::push_t::xhas_in ()
+{
+ return false;
+}
+
+bool zmq::push_t::xhas_out ()
+{
+ return lb.has_out ();
+}
+