X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FSocketSink.hh;h=3116052149376fcc2a1910187a751e0935148cea;hb=93d9568d448749dc187e7622b733a4a3caa319df;hp=a599816eee7a4a317009143111c5550d2894b7aa;hpb=3fe2ed38b800bcb57afff676698462e763724245;p=senf.git diff --git a/senf/PPI/SocketSink.hh b/senf/PPI/SocketSink.hh index a599816..3116052 100644 --- a/senf/PPI/SocketSink.hh +++ b/senf/PPI/SocketSink.hh @@ -39,7 +39,7 @@ #include "IOEvent.hh" //#include "SocketSink.mpp" -///////////////////////////////hh.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { namespace ppi { @@ -58,7 +58,7 @@ namespace ppi { ///< Handle type supported by this writer typedef Packet PacketType; - void operator()(Handle handle, Packet const & packet); + bool operator()(Handle & handle, Packet const & packet); ///< Write \a packet to \a handle /**< Write the complete \a packet as a datagram to \a handle. @@ -87,7 +87,7 @@ namespace ppi { typename Handle::Address target() const; ///< Get current target address void target(typename Handle::Address const & target); ///< Set target address - void operator()(Handle handle, Packet const & packet); ///< Write \a packet to \a handle + bool operator()(Handle & handle, Packet const & packet); ///< Write \a packet to \a handle /**< Write the complete \a packet as a datagram to \a handle. \param[in] handle Handle to write data to @@ -113,7 +113,7 @@ namespace ppi { void destination(senf::INet4SocketAddress & dest); senf::INet4SocketAddress destination(); - void operator()(Handle handle, Packet const & packet); + bool operator()(Handle & handle, Packet const & packet); ///< Write \a packet to \a handle /**< Write the complete \a packet as a datagram to \a handle. @@ -142,7 +142,7 @@ namespace ppi { void destination(senf::INet6SocketAddress & dest); senf::INet6SocketAddress destination(); - void operator()(Handle handle, Packet const & packet); + bool operator()(Handle & handle, Packet const & packet); ///< Write \a packet to \a handle /**< Write the complete \a packet as a datagram to \a handle. @@ -184,7 +184,7 @@ namespace module { SomeWriter(); // EITHER default constructible OR SomeWriter(SomeWriter const & other); // copy constructible - void operator()(Handle handle, Packet packet); // insertion function + bool operator()(Handle handle, Packet packet); // insertion function }; \endcode Whenever a packet is received for sending, the \a Writer's \c operator() is called. @@ -210,11 +210,12 @@ namespace module { \pre Requires \a Writer to be copy constructible \param[in] writer Writer helper writing packet date to the socket */ - explicit ActiveSocketSink(Handle handle); ///< Create new writer for the given handle + explicit ActiveSocketSink(Handle const & handle); + ///< Create new writer for the given handle /**< Data will be written to \a handle using \a Writer. \pre Requires \a Writer to be default constructible \param[in] handle Handle to write data to */ - ActiveSocketSink(Handle handle, Writer const & writer); + ActiveSocketSink(Handle const & handle, Writer const & writer); ///< Create new writer for the given handle /**< Data will be written to \a handle using \a Writer. \pre Requires \a Writer to be copy constructible @@ -224,7 +225,8 @@ namespace module { Writer & writer(); ///< Access the Writer Handle handle(); ///< Access handle - void handle(Handle handle); ///< Set handle + void handle(Handle const & handle); + ///< Set handle /**< Assigning an empty or in-valid() handle will disable the module until a new. valid handle is assigned. */ @@ -241,10 +243,10 @@ namespace module { able to handle complete datagrams. This output module will write data to a FileHandle object using a given \a Writer. This - output module is passive. This implies, that the output handle may not block. This also - implies, that data will probably get lost if written to fast for the underlying transport - mechanism. Either this is desired (like for a UDP socket) or some additional bandwidth - shaping needs to be used. + output module is passive. This implies, that the output handle may not block. This + also implies, that data will probably get lost if written to fast for the underlying + transport 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::ConnectedDgramWriter which will write out the complete packet to the file handle. @@ -260,7 +262,7 @@ namespace module { SomeWriter(); // EITHER default constructible SomeWriter(SomeWriter const & other); // OR copy constructible - void operator()(Handle handle, Packet packet); // insertion function + bool operator()(Handle handle, Packet packet); // insertion function }; \endcode Whenever a packet is received for sending, the \a Writer's \c operator() is called. @@ -286,11 +288,12 @@ namespace module { \pre Requires \a Writer to be copy constructible \param[in] writer Writer helper writing packet date to the socket */ - explicit PassiveSocketSink(Handle handle); ///< Create new writer for the given handle + explicit PassiveSocketSink(Handle const & handle); + ///< Create new writer for the given handle /**< Data will be written to \a handle using \a Writer. \pre Requires \a Writer to be default constructible \param[in] handle Handle to write data to */ - PassiveSocketSink(Handle handle, Writer const & writer); + PassiveSocketSink(Handle const & handle, Writer const & writer); ///< Create new writer for the given handle /**< Data will be written to \a handle using \a Writer. \pre Requires \a Writer to be copy constructible @@ -300,9 +303,10 @@ namespace module { Writer & writer(); ///< Access the Writer Handle & handle(); ///< Access handle - void handle(Handle handle); ///< Set handle + void handle(Handle const & handle); + ///< Set handle /**< Assigning an empty or in-valid() handle will disable - the module until a new. valid handle is assigned. */ + the module until a new valid handle is assigned. */ #ifndef DOXYGEN void replaceHandle(Handle newHandle); @@ -319,7 +323,7 @@ namespace module { }}} -///////////////////////////////hh.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #include "SocketSink.cci" #include "SocketSink.ct" #include "SocketSink.cti"