mirror of
https://github.com/zeromq/libzmq.git
synced 2025-03-05 03:37:36 +01:00
Fix issue #370
The patch extends the internal session's API with the reset method. This method is used to reset a session's state so that it can handle a new connection.
This commit is contained in:
parent
f7bd543c36
commit
7fe45af30f
@ -178,3 +178,8 @@ int zmq::req_session_t::write (msg_t *msg_)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void zmq::req_session_t::reset ()
|
||||||
|
{
|
||||||
|
session_base_t::reset ();
|
||||||
|
state = identity;
|
||||||
|
}
|
||||||
|
@ -72,6 +72,7 @@ namespace zmq
|
|||||||
|
|
||||||
// Overloads of the functions from session_base_t.
|
// Overloads of the functions from session_base_t.
|
||||||
int write (msg_t *msg_);
|
int write (msg_t *msg_);
|
||||||
|
void reset ();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -190,6 +190,13 @@ int zmq::session_base_t::write (msg_t *msg_)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void zmq::session_base_t::reset ()
|
||||||
|
{
|
||||||
|
// Restore identity flags.
|
||||||
|
send_identity = options.send_identity;
|
||||||
|
recv_identity = options.recv_identity;
|
||||||
|
}
|
||||||
|
|
||||||
void zmq::session_base_t::flush ()
|
void zmq::session_base_t::flush ()
|
||||||
{
|
{
|
||||||
if (pipe)
|
if (pipe)
|
||||||
@ -388,9 +395,7 @@ void zmq::session_base_t::detached ()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Restore identity flags.
|
reset ();
|
||||||
send_identity = options.send_identity;
|
|
||||||
recv_identity = options.recv_identity;
|
|
||||||
|
|
||||||
// Reconnect.
|
// Reconnect.
|
||||||
if (options.reconnect_ivl != -1)
|
if (options.reconnect_ivl != -1)
|
||||||
|
@ -56,6 +56,7 @@ namespace zmq
|
|||||||
// Following functions are the interface exposed towards the engine.
|
// Following functions are the interface exposed towards the engine.
|
||||||
virtual int read (msg_t *msg_);
|
virtual int read (msg_t *msg_);
|
||||||
virtual int write (msg_t *msg_);
|
virtual int write (msg_t *msg_);
|
||||||
|
virtual void reset ();
|
||||||
void flush ();
|
void flush ();
|
||||||
void detach ();
|
void detach ();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user