X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FSocketSink.hh;h=ee944ddf8ba9c46106bc00bf7fd3109a9b1688f9;hb=6927c87144ca23845065e3c23e37c75f5f059cf3;hp=e87b66fe620d4db05aab914777a1d21505bfb005;hpb=09b4d2c4934a5ea35d208cd22573e0e877ad54c8;p=senf.git
diff --git a/PPI/SocketSink.hh b/PPI/SocketSink.hh
index e87b66f..ee944dd 100644
--- a/PPI/SocketSink.hh
+++ b/PPI/SocketSink.hh
@@ -56,6 +56,7 @@ namespace ppi {
senf::DatagramFramingPolicy,
senf::ConnectedCommunicationPolicy>::policy > Handle;
///< Handle type supported by this writer
+ typedef Packet PacketType;
void operator()(Handle handle, Packet const & packet);
///< Write \a packet to \a handle
@@ -65,19 +66,32 @@ namespace ppi {
\param[in] packet Packet to write */
};
+ /** \brief Writer sending data with ClientSocketHandle::writeto()
+
+ This writer will send out data using ClientSocketHandle::writeto(). The target address can
+ be specified in the writer constructor and can be adjusted at any time.
+
+ If no target address is set, incoming data will be silently dropped.
+ */
template
class TargetDgramWriter
{
public:
typedef HandleType Handle;
+ typedef Packet PacketType;
- TargetDgramWriter();
+ TargetDgramWriter(); ///< Create TargetDgramWriter with unset target address
TargetDgramWriter(typename Handle::Address const & target);
+ ///< Create TargetDgramWriter sending to \a target
- typename Handle::Address target() const;
- void target(typename Handle::Address const & target);
+ 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);
+ void 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
+ \param[in] packet Packet to write */
private:
typename Handle::Address target_;
@@ -92,6 +106,7 @@ namespace ppi {
senf::MakeSocketPolicy< senf::WriteablePolicy,
senf::DatagramFramingPolicy>::policy > Handle;
///< Handle type supported by this writer
+ typedef Packet PacketType;
void source(senf::INet4Address & source);
senf::INet4Address source();
@@ -120,6 +135,7 @@ namespace ppi {
senf::MakeSocketPolicy< senf::WriteablePolicy,
senf::DatagramFramingPolicy>::policy > Handle;
///< Handle type supported by this writer
+ typedef Packet PacketType;
void source(senf::INet6Address & source);
senf::INet6Address source();
@@ -163,6 +179,7 @@ namespace module {
{
public:
typedef unspecified Handle; // type of handle requested
+ typedef unspecified_type PacketType // type of packet read
SomeWriter(); // EITHER default constructible OR
SomeWriter(SomeWriter const & other); // copy constructible
@@ -182,7 +199,7 @@ namespace module {
public:
typedef typename Writer::Handle Handle; ///< Handle type requested by writer
- connector::ActiveInput<> input; ///< Input connector from which data is received
+ connector::ActiveInput input; ///< Input connector from which data is received
ActiveSocketSink(); ///< Create non-connected writer
/**< The writer will be disabled until a socket is set
@@ -238,6 +255,7 @@ namespace module {
{
public:
typedef unspecified Handle; // type of handle requested
+ typedef unspecified_type PacketType // type of packet read
SomeWriter(); // EITHER default constructible
SomeWriter(SomeWriter const & other); // OR copy constructible
@@ -257,7 +275,7 @@ namespace module {
public:
typedef typename Writer::Handle Handle; ///< Handle type requested by writer
- connector::PassiveInput<> input; ///< Input connector from which data is received
+ connector::PassiveInput input; ///< Input connector from which data is received
PassiveSocketSink(); ///< Create non-connected writer
/**< The writer will be disabled until a socket is set