PPI: Implement DebugEvent
[senf.git] / PPI / DebugModules.cci
index 6accafa..58f367d 100644 (file)
@@ -53,6 +53,7 @@ prefix_ senf::ppi::module::debug::PassivePacketSource::PassivePacketSource()
 prefix_ void senf::ppi::module::debug::PassivePacketSource::submit(Packet packet)
 {
     packets_.push_back(packet);
+    output.unthrottle();
 }
 
 prefix_ bool senf::ppi::module::debug::PassivePacketSource::empty()
@@ -71,8 +72,16 @@ senf::ppi::module::debug::PassivePacketSource::size()
 
 prefix_ void senf::ppi::module::debug::PassivePacketSource::request()
 {
+    BOOST_ASSERT( ! packets_.empty() );
     output(packets_.front());
     packets_.pop_front();
+    if (packets_.empty())
+        output.throttle();
+}
+
+prefix_ void senf::ppi::module::debug::PassivePacketSource::init()
+{
+    output.throttle();
 }
 
 ///////////////////////////////////////////////////////////////////////////
@@ -120,19 +129,19 @@ senf::ppi::module::debug::PassivePacketSink::end()
     return packets_.end();
 }
 
-prefix_ senf::Packet senf::ppi::module::debug::PassivePacketSink::back()
+prefix_ senf::Packet senf::ppi::module::debug::PassivePacketSink::front()
 {
     if (empty())
         return Packet();
     else
-        return packets_.back();
+        return packets_.front();
 }
 
-prefix_ senf::Packet senf::ppi::module::debug::PassivePacketSink::pop_back()
+prefix_ senf::Packet senf::ppi::module::debug::PassivePacketSink::pop_front()
 {
-    Packet p (back());
+    Packet p (front());
     if (p) 
-        packets_.pop_back();
+        packets_.pop_front();
     return p;
 }