X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FSocketSink.cti;h=07dba5b124992c356842b7fdee025802aa8e7317;hb=fd3a0e8ac95d1158e9ea661ddf9187b67c70169f;hp=fd4fda8328f2f732ef67ae8528548b7e1a8e6630;hpb=f73fa16ed5abdce272ac77f8b8b9ef2b9922c266;p=senf.git diff --git a/PPI/SocketSink.cti b/PPI/SocketSink.cti index fd4fda8..07dba5b 100644 --- a/PPI/SocketSink.cti +++ b/PPI/SocketSink.cti @@ -1,8 +1,8 @@ // $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 // // This program is free software; you can redistribute it and/or modify @@ -31,23 +31,94 @@ ///////////////////////////////cti.p/////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// -// senf::ppi::module::ActiveSocketSink +// senf::ppi::TargetDgramWriter -template -prefix_ Sink & senf::ppi::module::ActiveSocketSink::sink() +template +prefix_ senf::ppi::TargetDgramWriter::TargetDgramWriter() +{} + +template +prefix_ senf::ppi::TargetDgramWriter:: +TargetDgramWriter(typename Handle::Address const & target) +: target_ (target) +{} + +template +prefix_ typename senf::ppi::TargetDgramWriter::Handle::Address +senf::ppi::TargetDgramWriter::target() + const +{ + return target_; +} + +template +prefix_ void +senf::ppi::TargetDgramWriter::target(typename Handle::Address const & target) +{ + target_ = target; +} + +template +prefix_ void senf::ppi::TargetDgramWriter::operator()(Handle handle, + Packet const & packet) +{ + if (target_) + handle.writeto(target_, packet.data()); +} + +/////////////////////////////////////////////////////////////////////////// +// senf::ppi::module::ActiveSocketSink + +template +prefix_ Writer & senf::ppi::module::ActiveSocketSink::writer() { return writer_; } +template +prefix_ typename senf::ppi::module::ActiveSocketSink::Handle +senf::ppi::module::ActiveSocketSink::handle() +{ + return handle_; +} + +template +prefix_ void senf::ppi::module::ActiveSocketSink::handle(Handle handle) +{ + handle_ = handle; + event_.set(handle_, IOEvent::Write); +} + /////////////////////////////////////////////////////////////////////////// -// senf::ppi::module::PassiveSocketSink +// senf::ppi::module::PassiveSocketSink -template -prefix_ Sink & senf::ppi::module::PassiveSocketSink::sink() +template +prefix_ Writer & senf::ppi::module::PassiveSocketSink::writer() { return writer_; } +template +prefix_ typename Writer::Handle & senf::ppi::module::PassiveSocketSink::handle() +{ + return handle_; +} + +template +prefix_ void senf::ppi::module::PassiveSocketSink::handle(Handle handle) +{ + handle_ = handle; + checkThrottle(); +} + +#ifndef DOXYGEN +template +prefix_ void senf::ppi::module::PassiveSocketSink::replaceHandle(Handle newHandle) +{ + handle(newHandle); +} +#endif + ///////////////////////////////cti.e/////////////////////////////////////// #undef prefix_