9 #ifndef ZMQ_HAVE_WINDOWS
39 zmq::raw_engine_t::raw_engine_t (
42 const endpoint_uri_pair_t &endpoint_uri_pair_) :
43 stream_engine_base_t (fd_,
options_, endpoint_uri_pair_,
false)
47 zmq::raw_engine_t::~raw_engine_t ()
51 void zmq::raw_engine_t::plug_internal ()
54 _encoder =
new (std::nothrow) raw_encoder_t (_options.out_batch_size);
57 _decoder =
new (std::nothrow) raw_decoder_t (_options.in_batch_size);
60 _next_msg = &raw_engine_t::pull_msg_from_session;
61 _process_msg =
static_cast<int (stream_engine_base_t::*) (msg_t *)
> (
62 &raw_engine_t::push_raw_msg_to_session);
64 properties_t properties;
65 if (init_properties (properties)) {
68 _metadata =
new (std::nothrow) metadata_t (properties);
72 if (_options.raw_notify) {
77 push_raw_msg_to_session (&connector);
88 bool zmq::raw_engine_t::handshake ()
93 void zmq::raw_engine_t::error (error_reason_t reason_)
95 if (_options.raw_socket && _options.raw_notify) {
100 push_raw_msg_to_session (&terminator);
106 int zmq::raw_engine_t::push_raw_msg_to_session (msg_t *msg_)
108 if (_metadata && _metadata != msg_->metadata ())
109 msg_->set_metadata (_metadata);
110 return push_msg_to_session (msg_);