Message-related functionality factored out into msg_t class.

This patch addresses serveral issues:
1. It gathers message related functionality scattered over whole
   codebase into a single class.
2. It makes zmq_msg_t an opaque datatype. Internals of the class
   don't pollute zmq.h header file.
3. zmq_msg_t size decreases from 48 to 32 bytes. That saves ~33%
   of memory in scenarios with large amount of small messages.

Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
This commit is contained in:
Martin Sustrik
2011-04-21 22:27:48 +02:00
parent 581697695a
commit e0246e32d7
55 changed files with 608 additions and 476 deletions

View File

@@ -23,14 +23,13 @@
#include <vector>
#include "../include/zmq.h"
#include "i_inout.hpp"
#include "i_engine.hpp"
#include "own.hpp"
#include "fd.hpp"
#include "stdint.hpp"
#include "blob.hpp"
#include "msg.hpp"
#include "own.hpp"
#include "fd.hpp"
namespace zmq
{
@@ -58,8 +57,8 @@ namespace zmq
void dispatch_engine ();
// i_inout interface implementation.
bool read (::zmq_msg_t *msg_);
bool write (::zmq_msg_t *msg_);
bool read (class msg_t *msg_);
bool write (class msg_t *msg_);
void flush ();
void detach ();
@@ -75,7 +74,7 @@ namespace zmq
// List of messages to send to the peer during the connection
// initiation phase.
typedef std::vector < ::zmq_msg_t> to_send_t;
typedef std::vector <msg_t> to_send_t;
to_send_t to_send;
// True if peer's identity was already received.