diff options
| author | Martin Lucina <mato@kotelna.sk> | 2011-03-28 10:39:51 +0200 | 
|---|---|---|
| committer | Martin Lucina <martin@lucina.net> | 2012-01-23 08:53:37 +0100 | 
| commit | 3e20cb1b8a2b1ca222011df37334e5f4f88dd565 (patch) | |
| tree | 4a753775186bc7f583f1ceb3f9aa675b6f110596 /src/req.hpp | |
| parent | 3f0085ddbef1a44b6bb7a0b23af497d56e0025fa (diff) | |
| parent | e645fc2693acc796304498909786b7b47005b429 (diff) | |
Imported Debian patch 2.1.3-1debian/2.1.3-1
Diffstat (limited to 'src/req.hpp')
| -rw-r--r-- | src/req.hpp | 59 | 
1 files changed, 12 insertions, 47 deletions
| diff --git a/src/req.hpp b/src/req.hpp index 5ab7bca..3138498 100644 --- a/src/req.hpp +++ b/src/req.hpp @@ -1,47 +1,39 @@  /* -    Copyright (c) 2007-2010 iMatix Corporation +    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 Lesser GNU General Public License as published by +    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 -    Lesser GNU General Public License for more details. +    GNU Lesser General Public License for more details. -    You should have received a copy of the Lesser GNU General Public License +    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_REQ_HPP_INCLUDED__  #define __ZMQ_REQ_HPP_INCLUDED__ -#include "socket_base.hpp" -#include "yarray.hpp" +#include "xreq.hpp"  namespace zmq  { -    class req_t : public socket_base_t +    class req_t : public xreq_t      {      public: -        req_t (class app_thread_t *parent_); +        req_t (class ctx_t *parent_, uint32_t tid_);          ~req_t ();          //  Overloads of functions from socket_base_t. -        void xattach_pipes (class reader_t *inpipe_, class writer_t *outpipe_, -            const blob_t &peer_identity_); -        void xdetach_inpipe (class reader_t *pipe_); -        void xdetach_outpipe (class writer_t *pipe_); -        void xkill (class reader_t *pipe_); -        void xrevive (class reader_t *pipe_); -        void xrevive (class writer_t *pipe_); -        int xsetsockopt (int option_, const void *optval_, size_t optvallen_);          int xsend (zmq_msg_t *msg_, int flags_);          int xrecv (zmq_msg_t *msg_, int flags_);          bool xhas_in (); @@ -49,43 +41,16 @@ namespace zmq      private: -        //  List in outbound and inbound pipes. Note that the two lists are -        //  always in sync. I.e. outpipe with index N communicates with the -        //  same session as inpipe with index N. -        // -        //  TODO: Once we have queue limits in place, list of active outpipes -        //  is to be held (presumably by stacking active outpipes at -        //  the beginning of the array). We don't have to do the same thing for -        //  inpipes, because we know which pipe we want to read the -        //  reply from. -        typedef yarray_t <class writer_t> out_pipes_t; -        out_pipes_t out_pipes; -        typedef yarray_t <class reader_t> in_pipes_t; -        in_pipes_t in_pipes; - -        //  Number of active pipes. -        size_t active; - -        //  Req_t load-balances the requests - 'current' points to the session -        //  that's processing the request at the moment. -        out_pipes_t::size_type current; -          //  If true, request was already sent and reply wasn't received yet or          //  was raceived partially.          bool receiving_reply; -        //  True, if read can be attempted from the reply pipe. -        bool reply_pipe_active; - -        //  True, if message processed at the moment (either sent or received) -        //  is processed only partially. -        bool more; - -        //  Pipe we are awaiting the reply from. -        class reader_t *reply_pipe; +        //  If true, we are starting to send/recv a message. The first part +        //  of the message must be empty message part (backtrace stack bottom). +        bool message_begins;          req_t (const req_t&); -        void operator = (const req_t&); +        const req_t &operator = (const req_t&);      };  } | 
