Replace SENFSCons.InstallIncludeFiles with InstallSubdir builder calls
[senf.git] / PPI / SocketSource.ct
index eb69a5d..bc60d29 100644 (file)
 ///////////////////////////////ct.p////////////////////////////////////////
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::ppi::DgramReader<Packet>
+// senf::ppi::DgramReader<Packet,MaxSize>
 
-template <class Packet>
-prefix_ Packet senf::ppi::DgramReader<Packet>::operator()(Handle handle)
+template <class Packet, unsigned MaxSize>
+prefix_ Packet senf::ppi::DgramReader<Packet,MaxSize>::operator()(Handle handle)
 {
     Packet packet (Packet::create(senf::noinit));
-    handle.read(packet.data(),0u);
+    handle.read(packet.data(),MaxSize);
     return packet;
 }
 
@@ -45,9 +45,23 @@ prefix_ Packet senf::ppi::DgramReader<Packet>::operator()(Handle handle)
 // senf::ppi::module::ActiveSocketSource<Reader>
 
 template <class Reader>
-prefix_ senf::ppi::module::ActiveSocketSource<Reader>::
-ActiveSocketSource(Handle handle)
-    : handle_(handle), event_(handle_, IOEvent::Read), reader_()
+prefix_ senf::ppi::module::ActiveSocketSource<Reader>::ActiveSocketSource()
+{
+    registerEvent( event_, &ActiveSocketSource::read );
+    route(event_, output);
+}
+
+template <class Reader>
+prefix_ senf::ppi::module::ActiveSocketSource<Reader>::ActiveSocketSource(Reader reader)
+    : reader_(reader)
+{
+    registerEvent( event_, &ActiveSocketSource::read );
+    route(event_, output);
+}
+
+template <class Reader>
+prefix_ senf::ppi::module::ActiveSocketSource<Reader>::ActiveSocketSource(Handle handle)
+    : handle_(handle), event_(handle_, IOEvent::Read)
 {
     registerEvent( event_, &ActiveSocketSource::read );
     route(event_, output);