diff --git a/Makefile b/Makefile index 532d737a676684ebe95093c189992f4eedb8f7de..f423bb548a067cae5bbff75536e1fc66b2fc043c 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,15 @@ all_docs all_tests all: %/build: $(SCONS) $* +#---------------------------------------------------------------------- +# remote compile targets +#---------------------------------------------------------------------- +JOBS := 1 +all@% all_docs@% all_test@% build@%: + ssh $* "cd `pwd` && $(MAKE) -j $(JOBS) $(firstword $(subst @, ,$@))" + + #---------------------------------------------------------------------- # test coverage #---------------------------------------------------------------------- diff --git a/PPI/SocketSink.hh b/PPI/SocketSink.hh index 74580cc807feb1541db394484d0d07d6027525ef..ee944ddf8ba9c46106bc00bf7fd3109a9b1688f9 100644 --- a/PPI/SocketSink.hh +++ b/PPI/SocketSink.hh @@ -56,6 +56,7 @@ namespace ppi { senf::DatagramFramingPolicy, senf::ConnectedCommunicationPolicy>::policy > Handle; ///< Handle type supported by this writer + typedef Packet PacketType; void operator()(Handle handle, Packet const & packet); ///< Write \a packet to \a handle @@ -77,6 +78,7 @@ namespace ppi { { public: typedef HandleType Handle; + typedef Packet PacketType; TargetDgramWriter(); ///< Create TargetDgramWriter with unset target address TargetDgramWriter(typename Handle::Address const & target); @@ -104,6 +106,7 @@ namespace ppi { senf::MakeSocketPolicy< senf::WriteablePolicy, senf::DatagramFramingPolicy>::policy > Handle; ///< Handle type supported by this writer + typedef Packet PacketType; void source(senf::INet4Address & source); senf::INet4Address source(); @@ -132,6 +135,7 @@ namespace ppi { senf::MakeSocketPolicy< senf::WriteablePolicy, senf::DatagramFramingPolicy>::policy > Handle; ///< Handle type supported by this writer + typedef Packet PacketType; void source(senf::INet6Address & source); senf::INet6Address source(); @@ -175,6 +179,7 @@ namespace module { { public: typedef unspecified Handle; // type of handle requested + typedef unspecified_type PacketType // type of packet read SomeWriter(); // EITHER default constructible OR SomeWriter(SomeWriter const & other); // copy constructible @@ -194,7 +199,7 @@ namespace module { public: typedef typename Writer::Handle Handle; ///< Handle type requested by writer - connector::ActiveInput<> input; ///< Input connector from which data is received + connector::ActiveInput<typename Writer::PacketType> input; ///< Input connector from which data is received ActiveSocketSink(); ///< Create non-connected writer /**< The writer will be disabled until a socket is set @@ -250,6 +255,7 @@ namespace module { { public: typedef unspecified Handle; // type of handle requested + typedef unspecified_type PacketType // type of packet read SomeWriter(); // EITHER default constructible SomeWriter(SomeWriter const & other); // OR copy constructible @@ -269,7 +275,7 @@ namespace module { public: typedef typename Writer::Handle Handle; ///< Handle type requested by writer - connector::PassiveInput<> input; ///< Input connector from which data is received + connector::PassiveInput<typename Writer::PacketType> input; ///< Input connector from which data is received PassiveSocketSink(); ///< Create non-connected writer /**< The writer will be disabled until a socket is set diff --git a/Scheduler/TimerEvent.hh b/Scheduler/TimerEvent.hh index d44cd50cf00785ebe9a2e1bb98ee2c8e64da14dc..6084f11465a663bee1e8f4214e97a5e76b245dc7 100644 --- a/Scheduler/TimerEvent.hh +++ b/Scheduler/TimerEvent.hh @@ -88,9 +88,9 @@ namespace scheduler { automatically. Use enable() to do so. \param[in] name Descriptive timer name (purely informational) + \param[in] cb Callback to call \param[in] timeout timeout time after the timer will be disabled - \param[in] cb Callback to call \param[in] initiallyEnabled if set \c false, do not enable callback automatically. */ TimerEvent(std::string const & name, Callback const & cb); diff --git a/Scheduler/TimerEvent.test.cc b/Scheduler/TimerEvent.test.cc index 92e3f778e50cc86a0f9022d5ac11dfdb0a8e58a7..6a5704a7e17a16fe2e45f5947889c2463ff165e3 100644 --- a/Scheduler/TimerEvent.test.cc +++ b/Scheduler/TimerEvent.test.cc @@ -100,7 +100,7 @@ namespace { void jitterCb(senf::scheduler::TimerEvent & tm) { - std::cerr << "diff:" << senf::ClockService::in_microseconds( senf::scheduler::now() - tm.timeout()) << '\n'; + //std::cerr << "diff:" << senf::ClockService::in_microseconds( senf::scheduler::now() - tm.timeout()) << '\n'; count ++; delay += senf::ClockService::in_microseconds( senf::scheduler::now() - tm.timeout()); haveCb = true; @@ -127,10 +127,10 @@ namespace { { count = 0; delay = 0; - senf::scheduler::EventHook pre ("jitterTest::preCb", &preCb, - senf::scheduler::EventHook::PRE); - senf::scheduler::EventHook post ("jitterTest::postCb", &postCb, - senf::scheduler::EventHook::POST); +// senf::scheduler::EventHook pre ("jitterTest::preCb", &preCb, +// senf::scheduler::EventHook::PRE); +// senf::scheduler::EventHook post ("jitterTest::postCb", &postCb, +// senf::scheduler::EventHook::POST); senf::scheduler::TimerEvent tm1 ( "jitterTest::tm1", boost::bind(&jitterCb, boost::ref(tm1)), randomDelay()); @@ -148,7 +148,7 @@ namespace { senf::scheduler::process(); - std::cerr << "Average scheduling delay: " << delay/count << "\n"; + std::cerr << "Average scheduling delay: " << delay/count << " microseconds\n"; } }