%/build:
$(SCONS) $*
+#----------------------------------------------------------------------
+# remote compile targets
+#----------------------------------------------------------------------
+JOBS := 1
+all@% all_docs@% all_test@% build@%:
+ ssh $* "cd `pwd` && $(MAKE) -j $(JOBS) $(firstword $(subst @, ,$@))"
+
+
#----------------------------------------------------------------------
# test coverage
#----------------------------------------------------------------------
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
{
public:
typedef HandleType Handle;
+ typedef Packet PacketType;
TargetDgramWriter(); ///< Create TargetDgramWriter with unset target address
TargetDgramWriter(typename Handle::Address const & target);
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();
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();
{
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
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
{
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
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
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);
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;
{
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());
senf::scheduler::process();
- std::cerr << "Average scheduling delay: " << delay/count << "\n";
+ std::cerr << "Average scheduling delay: " << delay/count << " microseconds\n";
}
}