// $Id$
//
-// Copyright (C) 2007
-// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// Competence Center NETwork research (NET), St. Augustin, GERMANY
+// 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
// senf::ppi::module::ActiveSocketSink<Writer>
template <class Writer>
+prefix_ senf::ppi::module::ActiveSocketSink<Writer>::ActiveSocketSink()
+{
+ registerEvent( event_, &ActiveSocketSink::write );
+ route(input, event_);
+}
+
+template <class Writer>
+prefix_ senf::ppi::module::ActiveSocketSink<Writer>::ActiveSocketSink(Writer const & writer)
+ : writer_ (writer)
+{
+ registerEvent( event_, &ActiveSocketSink::write );
+ route(input, event_);
+}
+
+template <class Writer>
prefix_ senf::ppi::module::ActiveSocketSink<Writer>::ActiveSocketSink(Handle handle)
: handle_(handle), event_(handle_, IOEvent::Write), writer_()
{
// senf::ppi::module::PassiveSocketSink<Writer>
template <class Writer>
+prefix_ senf::ppi::module::PassiveSocketSink<Writer>::PassiveSocketSink()
+{
+ noroute(input);
+ input.onRequest(&PassiveSocketSink::write);
+ checkThrottle();
+}
+
+template <class Writer>
+prefix_ senf::ppi::module::PassiveSocketSink<Writer>::PassiveSocketSink(Writer const & writer)
+ : writer_ (writer)
+{
+ noroute(input);
+ input.onRequest(&PassiveSocketSink::write);
+ checkThrottle();
+}
+
+template <class Writer>
prefix_ senf::ppi::module::PassiveSocketSink<Writer>::PassiveSocketSink(Handle handle)
: handle_(handle), writer_()
{
noroute(input);
input.onRequest(&PassiveSocketSink::write);
+ checkThrottle();
}
template <class Writer>
{
noroute(input);
input.onRequest(&PassiveSocketSink::write);
+ checkThrottle();
}
////////////////////////////////////////
writer_(handle_,input());
}
+template <class Writer>
+prefix_ void senf::ppi::module::PassiveSocketSink<Writer>::checkThrottle()
+{
+ if (handle_)
+ input.unthrottle();
+ else
+ input.throttle();
+}
+
///////////////////////////////ct.e////////////////////////////////////////
#undef prefix_