problem: ws_engine duplicate code from stream_engine

Solution: New class called stream_engine_base which is inherited by ws_engine, zmtp_engine and raw_engine.
This commit is contained in:
somdoron
2019-07-17 17:57:44 +03:00
parent 39941a0c82
commit 157b2a2ee0
21 changed files with 1858 additions and 1779 deletions

View File

@@ -425,8 +425,7 @@ void zmq::session_base_t::process_attach (i_engine *engine_)
_engine->plug (_io_thread, this);
}
void zmq::session_base_t::engine_error (
zmq::stream_engine_t::error_reason_t reason_)
void zmq::session_base_t::engine_error (zmq::i_engine::error_reason_t reason_)
{
// Engine is dead. Let's forget about it.
_engine = NULL;
@@ -435,20 +434,20 @@ void zmq::session_base_t::engine_error (
if (_pipe)
clean_pipes ();
zmq_assert (reason_ == stream_engine_t::connection_error
|| reason_ == stream_engine_t::timeout_error
|| reason_ == stream_engine_t::protocol_error);
zmq_assert (reason_ == i_engine::connection_error
|| reason_ == i_engine::timeout_error
|| reason_ == i_engine::protocol_error);
switch (reason_) {
case stream_engine_t::timeout_error:
case i_engine::timeout_error:
/* FALLTHROUGH */
case stream_engine_t::connection_error:
case i_engine::connection_error:
if (_active) {
reconnect ();
break;
}
/* FALLTHROUGH */
case stream_engine_t::protocol_error:
case i_engine::protocol_error:
if (_pending) {
if (_pipe)
_pipe->terminate (false);