X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FSocketWriter.hh;h=118273d26f52e2965f087784337f12843f77f9ab;hb=aab64270dd15a9b9a3e7dc61e076d32b6bc5c66d;hp=233322cc6c9474dd51393d3ad76df2a332fcd084;hpb=48bbf27e9e89d6eba4754fba65d70a15b115ac8b;p=senf.git diff --git a/PPI/SocketWriter.hh b/PPI/SocketWriter.hh index 233322c..118273d 100644 --- a/PPI/SocketWriter.hh +++ b/PPI/SocketWriter.hh @@ -25,12 +25,12 @@ #define HH_SocketWriter_ 1 // Custom includes -#include "Packets/Packets.hh" -#include "Socket/ClientSocketHandle.hh" -#include "Socket/SocketPolicy.hh" -#include "Socket/ReadWritePolicy.hh" -#include "Socket/FramingPolicy.hh" -#include "Socket/CommunicationPolicy.hh" +#include "../Packets/Packets.hh" +#include "../Socket/ClientSocketHandle.hh" +#include "../Socket/SocketPolicy.hh" +#include "../Socket/ReadWritePolicy.hh" +#include "../Socket/FramingPolicy.hh" +#include "../Socket/CommunicationPolicy.hh" #include "Module.hh" #include "Connectors.hh" @@ -73,7 +73,10 @@ namespace module { output module is active. This requires the file handle to be able to signal its readiness to accept more data via the Scheduler. - The \a Writer must fulfill the following interface: + The default \a Writer is senf::ppi::PacketWriter which will write out the complete packet to + the file handle. + + A \a Writer must fulfill the following interface: \code class SomeWriter { @@ -83,10 +86,15 @@ namespace module { void operator()(Handle handle, Packet packet); // insertion function }; \endcode + Whenever a packet is received for sending, the \a Writer's \c operator() is called. + + \ingroup io_modules */ template class ActiveSocketWriter : public Module { + SENF_PPI_MODULE(ActiveSocketWriter); + public: typedef typename Writer::Handle Handle; ///< Handle type requested by writer @@ -111,6 +119,9 @@ namespace module { mechanism. Either this is desired (like for a UDP socket) or some additional bandwidth shaping needs to be used. + The default \a Writer is senf::ppi::PacketWriter which will write out the complete packet to + the file handle. + The \a Writer must fulfill the following interface: \code class SomeWriter @@ -121,10 +132,15 @@ namespace module { void operator()(Handle handle, Packet packet); // insertion function }; \endcode + Whenever a packet is received for sending, the \a Writer's \c operator() is called. + + \ingroup io_modules */ template class PassiveSocketWriter : public Module { + SENF_PPI_MODULE(PassiveSocketWriter); + public: typedef typename Writer::Handle Handle; ///< Handle type requested by writer