X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FSocketSource.ct;h=e2256615beb51967c7cecad0a5ef87463ae1d4c6;hb=5443435c4c2b6e4386c5334b5b8358273f2bae93;hp=f38f045c5b307fce6b2956a831d53a4661564feb;hpb=a479735a65e334af538b895f182f8efd36a541c5;p=senf.git diff --git a/PPI/SocketSource.ct b/PPI/SocketSource.ct index f38f045..e225661 100644 --- a/PPI/SocketSource.ct +++ b/PPI/SocketSource.ct @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// 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,46 @@ ///////////////////////////////ct.p//////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// -// senf::ppi::PacketSource +// senf::ppi::DgramReader template -prefix_ Packet senf::ppi::PacketSource::operator()(Handle handle) +prefix_ Packet senf::ppi::DgramReader::operator()(Handle handle) { - Packet packet (Packet::create(Packet::noinit)); + Packet packet (Packet::create(senf::noinit)); handle.read(packet.data(),0u); return packet; } /////////////////////////////////////////////////////////////////////////// -// senf::ppi::module::ActiveSocketSource +// senf::ppi::module::ActiveSocketSource -template -prefix_ senf::ppi::module::ActiveSocketSource:: -ActiveSocketSource(Handle handle) - : handle_(handle), event_(handle_, IOEvent::Read), reader_() +template +prefix_ senf::ppi::module::ActiveSocketSource::ActiveSocketSource() +{ + registerEvent( event_, &ActiveSocketSource::read ); + route(event_, output); +} + +template +prefix_ senf::ppi::module::ActiveSocketSource::ActiveSocketSource(Reader reader) + : reader_(reader) +{ + registerEvent( event_, &ActiveSocketSource::read ); + route(event_, output); +} + +template +prefix_ senf::ppi::module::ActiveSocketSource::ActiveSocketSource(Handle handle) + : handle_(handle), event_(handle_, IOEvent::Read) +{ + registerEvent( event_, &ActiveSocketSource::read ); + route(event_, output); +} + +template +prefix_ senf::ppi::module::ActiveSocketSource::ActiveSocketSource(Handle handle, + Reader reader) + : handle_(handle), event_(handle_, IOEvent::Read), reader_(reader) { registerEvent( event_, &ActiveSocketSource::read ); route(event_, output); @@ -56,8 +79,8 @@ ActiveSocketSource(Handle handle) //////////////////////////////////////// // private members -template -prefix_ void senf::ppi::module::ActiveSocketSource::read() +template +prefix_ void senf::ppi::module::ActiveSocketSource::read() { output(reader_(handle_)); }