summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormalosek <malosek@fastmq.com>2009-09-15 13:47:15 +0200
committermalosek <malosek@fastmq.com>2009-09-15 13:47:15 +0200
commit0381a78c0484012e760d61051f325c71136df17e (patch)
tree0f1cf260a94c414801612cff21fb0f197dd8e1f5 /src
parent79d4a6debf2f4a6970c1137f15426ba0c3535ac0 (diff)
added reset method into zmq_decoder_t class
Diffstat (limited to 'src')
-rw-r--r--src/zmq_decoder.cpp10
-rw-r--r--src/zmq_decoder.hpp2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/zmq_decoder.cpp b/src/zmq_decoder.cpp
index 53811a1..ccaad0d 100644
--- a/src/zmq_decoder.cpp
+++ b/src/zmq_decoder.cpp
@@ -36,6 +36,16 @@ zmq::zmq_decoder_t::~zmq_decoder_t ()
zmq_msg_close (&in_progress);
}
+void zmq::zmq_decoder_t::reset ()
+{
+ // Free and reinit message buffer.
+ zmq_msg_close (&in_progress);
+ zmq_msg_init (&in_progress);
+
+ // Restart the FSM.
+ next_step (tmpbuf, 1, &zmq_decoder_t::one_byte_size_ready);
+}
+
void zmq::zmq_decoder_t::set_inout (i_inout *destination_)
{
destination = destination_;
diff --git a/src/zmq_decoder.hpp b/src/zmq_decoder.hpp
index 16b5312..6bc373b 100644
--- a/src/zmq_decoder.hpp
+++ b/src/zmq_decoder.hpp
@@ -37,6 +37,8 @@ namespace zmq
void set_inout (struct i_inout *destination_);
+ // Clears any partially decoded messages.
+ void reset ();
private:
bool one_byte_size_ready ();