X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Examples%2FRateStuffer%2Fratestuffer.cc;h=7c1d1c79b147686c4638c3623fdfef64dc57b692;hb=77a726fdfa20680c691ba528fdad979422ef829c;hp=ea294273aa43872843dd93a0d7c495f67ab7e97f;hpb=f0d8247a8343da19c00452a290e7aeeb8944652c;p=senf.git diff --git a/Examples/RateStuffer/ratestuffer.cc b/Examples/RateStuffer/ratestuffer.cc index ea29427..7c1d1c7 100644 --- a/Examples/RateStuffer/ratestuffer.cc +++ b/Examples/RateStuffer/ratestuffer.cc @@ -46,53 +46,73 @@ namespace module = senf::ppi::module; namespace connector = senf::ppi::connector; namespace ppi = senf::ppi; -namespace { - - class RateFilter - : public module::Module - { - SENF_PPI_MODULE(RateFilter); - public: - - connector::ActiveInput input; - connector::ActiveOutput output; - - RateFilter(senf::ClockService::clock_type interval) : timer(interval) { - route(input,output); - route(input,timer); - registerEvent(&RateFilter::timeout, timer); - } - - private: - void timeout() { - output(input()); - } - - ppi::IntervalTimer timer; - }; - - class CopyPacketGenerator - : public module::Module - { - SENF_PPI_MODULE(CopyPacketGenerator); - public: - - connector::PassiveOutput output; - - CopyPacketGenerator(senf::Packet p) : packet(p) { - noroute(output); - output.onRequest(&CopyPacketGenerator::request); - } - - private: - void request() { - output(packet); - } - - senf::Packet packet; - }; +// //////////////////////////////////////////////////////////////////////// +// RateFilter + +class RateFilter + : public module::Module +{ + SENF_PPI_MODULE(RateFilter); +public: + + connector::ActiveInput input; + connector::ActiveOutput output; + + RateFilter(senf::ClockService::clock_type interval); + +private: + void timeout(); + + ppi::IntervalTimer timer; +}; + +RateFilter::RateFilter(senf::ClockService::clock_type interval) + : timer(interval) +{ + route(input,timer); + route(timer,output); + registerEvent(&RateFilter::timeout, timer); +} + +void RateFilter::timeout() +{ + output(input()); } +// //////////////////////////////////////////////////////////////////////// +// CopyPacketGenerator + +class CopyPacketGenerator + : public module::Module +{ + SENF_PPI_MODULE(CopyPacketGenerator); +public: + + connector::PassiveOutput output; + + CopyPacketGenerator(senf::Packet p); + +private: + void request(); + + senf::Packet packet; +}; + +CopyPacketGenerator::CopyPacketGenerator(senf::Packet p) + : packet(p) +{ + noroute(output); + output.onRequest(&CopyPacketGenerator::request); +} + +void CopyPacketGenerator::request() +{ + output(packet); +} + +// //////////////////////////////////////////////////////////////////////// +// //////////////////////////////////////////////////////////////////////// + // Module setup: // // 'O' = active connector