12 zmq::v2_encoder_t::v2_encoder_t (
size_t bufsize_) :
13 encoder_base_t<v2_encoder_t> (bufsize_)
16 next_step (
NULL, 0, &v2_encoder_t::message_ready,
true);
19 zmq::v2_encoder_t::~v2_encoder_t ()
23 void zmq::v2_encoder_t::message_ready ()
26 size_t size = in_progress ()->size ();
27 size_t header_size = 2;
28 unsigned char &protocol_flags = _tmp_buf[0];
32 if (in_progress ()->
size () > UCHAR_MAX)
36 if (in_progress ()->is_subscribe () || in_progress ()->is_cancel ())
46 _tmp_buf[1] =
static_cast<uint8_t
> (
size);
56 if (in_progress ()->is_subscribe ())
57 _tmp_buf[header_size++] = 1;
58 else if (in_progress ()->is_cancel ())
59 _tmp_buf[header_size++] = 0;
61 next_step (_tmp_buf, header_size, &v2_encoder_t::size_ready,
false);
64 void zmq::v2_encoder_t::size_ready ()
67 next_step (in_progress ()->
data (), in_progress ()->
size (),
68 &v2_encoder_t::message_ready,
true);