X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FSocketSink.cti;h=07dba5b124992c356842b7fdee025802aa8e7317;hb=b89e3166f7680755683dccee5e48cb3a820185c0;hp=24b33dd8afe657ecf32a8ec3bf20629376b9951e;hpb=e7ac3fef18af5ec0076f02290ad439a9d6e05491;p=senf.git diff --git a/PPI/SocketSink.cti b/PPI/SocketSink.cti index 24b33dd..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,6 +31,42 @@ ///////////////////////////////cti.p/////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// +// senf::ppi::TargetDgramWriter + +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 @@ -39,6 +75,20 @@ 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 @@ -55,10 +105,20 @@ prefix_ typename Writer::Handle & senf::ppi::module::PassiveSocketSink:: } template -prefix_ void senf::ppi::module::PassiveSocketSink::replaceHandle(Handle handle) +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_