removed some useless spaces; not very important, I know :)
[senf.git] / PPI / DebugModules.cci
index 58f367d..975d9bb 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
-// Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
     \brief DebugModules inline non-template implementation */
 
 // Custom includes
+#include "../Utils/senfassert.hh"
+#include "Setup.hh"
 
 #define prefix_ inline
 ///////////////////////////////cci.p///////////////////////////////////////
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::ppi::module::debug::ActivePacketSource
+// senf::ppi::module::debug::ActiveSource
 
-prefix_ senf::ppi::module::debug::ActivePacketSource::ActivePacketSource()
+prefix_ senf::ppi::module::debug::ActiveSource::ActiveSource()
 {
     noroute(output);
 }
 
-prefix_ void senf::ppi::module::debug::ActivePacketSource::submit(Packet packet)
+prefix_ void senf::ppi::module::debug::ActiveSource::submit(Packet packet)
 {
     output(packet);
 }
 
+prefix_ bool senf::ppi::module::debug::ActiveSource::boolean_test()
+    const
+{
+    return output;
+}
+
 ///////////////////////////////////////////////////////////////////////////
-// senf::ppi::module::debug::PassivePacketSource
+// senf::ppi::module::debug::PassiveSource
 
-prefix_ senf::ppi::module::debug::PassivePacketSource::PassivePacketSource()
+prefix_ senf::ppi::module::debug::PassiveSource::PassiveSource()
 {
     noroute(output);
-    output.onRequest(&PassivePacketSource::request);
+    output.onRequest(&PassiveSource::request);
+}
+
+prefix_ void senf::ppi::module::debug::PassiveSource::throttle()
+{
+    output.throttle();
+}
+
+prefix_ void senf::ppi::module::debug::PassiveSource::unthrottle()
+{
+    output.unthrottle();
 }
 
-prefix_ void senf::ppi::module::debug::PassivePacketSource::submit(Packet packet)
+prefix_ void senf::ppi::module::debug::PassiveSource::submit(Packet packet)
 {
     packets_.push_back(packet);
     output.unthrottle();
 }
 
-prefix_ bool senf::ppi::module::debug::PassivePacketSource::empty()
+prefix_ bool senf::ppi::module::debug::PassiveSource::empty()
 {
     return packets_.empty();
 }
 
-prefix_ senf::ppi::module::debug::PassivePacketSource::size_type
-senf::ppi::module::debug::PassivePacketSource::size()
+prefix_ senf::ppi::module::debug::PassiveSource::size_type
+senf::ppi::module::debug::PassiveSource::size()
 {
     return packets_.size();
 }
@@ -70,66 +88,83 @@ senf::ppi::module::debug::PassivePacketSource::size()
 ////////////////////////////////////////
 // private members
 
-prefix_ void senf::ppi::module::debug::PassivePacketSource::request()
+prefix_ void senf::ppi::module::debug::PassiveSource::request()
 {
-    BOOST_ASSERT( ! packets_.empty() );
+    SENF_ASSERT( ! packets_.empty() );
     output(packets_.front());
     packets_.pop_front();
     if (packets_.empty())
         output.throttle();
 }
 
-prefix_ void senf::ppi::module::debug::PassivePacketSource::init()
+prefix_ void senf::ppi::module::debug::PassiveSource::init()
 {
-    output.throttle();
+    if (empty())
+        output.throttle();
 }
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::ppi::module::debug::ActivePacketSink
+// senf::ppi::module::debug::ActiveSink
 
-prefix_ senf::ppi::module::debug::ActivePacketSink::ActivePacketSink()
+prefix_ senf::ppi::module::debug::ActiveSink::ActiveSink()
 {
     noroute(input);
 }
 
-prefix_ senf::Packet senf::ppi::module::debug::ActivePacketSink::request()
+prefix_ senf::Packet senf::ppi::module::debug::ActiveSink::request()
 {
     return input();
 }
 
+prefix_ bool senf::ppi::module::debug::ActiveSink::boolean_test()
+    const
+{
+    return input;
+}
+
 ///////////////////////////////////////////////////////////////////////////
-// senf::ppi::module::debug::PassivePacketSink
+// senf::ppi::module::debug::PassiveSink
 
-prefix_ senf::ppi::module::debug::PassivePacketSink::PassivePacketSink()
+prefix_ senf::ppi::module::debug::PassiveSink::PassiveSink()
 {
     noroute(input);
-    input.onRequest(&PassivePacketSink::request);
+    input.onRequest(&PassiveSink::request);
+}
+
+prefix_ void senf::ppi::module::debug::PassiveSink::throttle()
+{
+    input.throttle();
 }
 
-prefix_ bool senf::ppi::module::debug::PassivePacketSink::empty()
+prefix_ void senf::ppi::module::debug::PassiveSink::unthrottle()
+{
+    input.unthrottle();
+}
+
+prefix_ bool senf::ppi::module::debug::PassiveSink::empty()
 {
     return packets_.empty();
 }
 
-prefix_ senf::ppi::module::debug::PassivePacketSink::size_type
-senf::ppi::module::debug::PassivePacketSink::size()
+prefix_ senf::ppi::module::debug::PassiveSink::size_type
+senf::ppi::module::debug::PassiveSink::size()
 {
     return packets_.size();
 }
 
-prefix_ senf::ppi::module::debug::PassivePacketSink::iterator
-senf::ppi::module::debug::PassivePacketSink::begin()
+prefix_ senf::ppi::module::debug::PassiveSink::iterator
+senf::ppi::module::debug::PassiveSink::begin()
 {
     return packets_.begin();
 }
 
-prefix_ senf::ppi::module::debug::PassivePacketSink::iterator
-senf::ppi::module::debug::PassivePacketSink::end()
+prefix_ senf::ppi::module::debug::PassiveSink::iterator
+senf::ppi::module::debug::PassiveSink::end()
 {
     return packets_.end();
 }
 
-prefix_ senf::Packet senf::ppi::module::debug::PassivePacketSink::front()
+prefix_ senf::Packet senf::ppi::module::debug::PassiveSink::front()
 {
     if (empty())
         return Packet();
@@ -137,15 +172,15 @@ prefix_ senf::Packet senf::ppi::module::debug::PassivePacketSink::front()
         return packets_.front();
 }
 
-prefix_ senf::Packet senf::ppi::module::debug::PassivePacketSink::pop_front()
+prefix_ senf::Packet senf::ppi::module::debug::PassiveSink::pop_front()
 {
     Packet p (front());
-    if (p) 
+    if (p)
         packets_.pop_front();
     return p;
 }
 
-prefix_ void senf::ppi::module::debug::PassivePacketSink::clear()
+prefix_ void senf::ppi::module::debug::PassiveSink::clear()
 {
     packets_.erase(packets_.begin(), packets_.end());
 }
@@ -153,11 +188,83 @@ prefix_ void senf::ppi::module::debug::PassivePacketSink::clear()
 ////////////////////////////////////////
 // private members
 
-prefix_ void senf::ppi::module::debug::PassivePacketSink::request()
+prefix_ void senf::ppi::module::debug::PassiveSink::request()
 {
     packets_.push_back(input());
 }
 
+///////////////////////////////////////////////////////////////////////////
+// senf::ppi::module::debug::ActiveFeederSource
+
+prefix_ senf::ppi::module::debug::ActiveFeederSource::ActiveFeederSource()
+    : output(feeder.output)
+{
+    ppi::connect(source,feeder);
+}
+
+prefix_ void senf::ppi::module::debug::ActiveFeederSource::submit(Packet packet)
+{
+    source.submit(packet);
+}
+
+prefix_ bool senf::ppi::module::debug::ActiveFeederSource::empty()
+{
+    return source.empty();
+}
+
+prefix_ senf::ppi::module::debug::ActiveFeederSource::size_type
+senf::ppi::module::debug::ActiveFeederSource::size()
+{
+    return source.size();
+}
+
+///////////////////////////////////////////////////////////////////////////
+// senf::ppi::module::debug::ActiveFeederSink
+
+prefix_ senf::ppi::module::debug::ActiveFeederSink::ActiveFeederSink()
+    : input(feeder.input)
+{
+    ppi::connect(feeder, sink);
+}
+
+prefix_ bool senf::ppi::module::debug::ActiveFeederSink::empty()
+{
+    return sink.empty();
+}
+
+prefix_ senf::ppi::module::debug::ActiveFeederSink::size_type
+senf::ppi::module::debug::ActiveFeederSink::size()
+{
+    return sink.size();
+}
+
+prefix_ senf::ppi::module::debug::ActiveFeederSink::iterator
+senf::ppi::module::debug::ActiveFeederSink::begin()
+{
+    return sink.begin();
+}
+
+prefix_ senf::ppi::module::debug::ActiveFeederSink::iterator
+senf::ppi::module::debug::ActiveFeederSink::end()
+{
+    return sink.end();
+}
+
+prefix_ senf::Packet senf::ppi::module::debug::ActiveFeederSink::front()
+{
+    return sink.front();
+}
+
+prefix_ senf::Packet senf::ppi::module::debug::ActiveFeederSink::pop_front()
+{
+    return sink.pop_front();
+}
+
+prefix_ void senf::ppi::module::debug::ActiveFeederSink::clear()
+{
+    sink.clear();
+}
+
 ///////////////////////////////cci.e///////////////////////////////////////
 #undef prefix_