X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketProtocol.hh;h=c829647441f050e79bf9fd7a69c4376b30e296b1;hb=08d97ee2fd048ae883c297118145487517a31258;hp=e4f9f211b5ef203bbab97c76a7749360ccbce531;hpb=04dd5d565dc0a5888f8d26bbcb12e9d325d6a4e5;p=senf.git diff --git a/Socket/SocketProtocol.hh b/Socket/SocketProtocol.hh index e4f9f21..c829647 100644 --- a/Socket/SocketProtocol.hh +++ b/Socket/SocketProtocol.hh @@ -29,7 +29,7 @@ the number of heap-allocations per socket to one which is good. */ -// The private inheritance idea should indeed work very well: We just need to chnage the +// The private inheritance idea should indeed work very well: We just need to change the // implementations of body() and protocol() and that of the ProtocolClient/ServerSocketHandle // constructors and the SocketBody constructor. The body and the protocol would still be visible // like several instances because of the private inheritance but we would save the backwards @@ -37,7 +37,22 @@ /** \defgroup protocol_group The Protocol Classes - \image html Protocols.png + \htmlonly + + SocketPolicy + ConcreteSocketProtocol + SocketProtocol + BSDSocketProtocol + AddressableBSDSocketProtocol + IPv4Protocol + IPv6Protocol + TCPProtocol + TCPv4SocketProtocol + TCPv6SocketProtocol + PacketProtocol + + Protocols + \endhtmlonly The socket handle classes and templates only implement the most important socket API methods using the policy framework. To access the complete API, the protocol interface is @@ -90,7 +105,8 @@ // Custom includes #include -/** \fixme this is not nice. The includes and predefs should be restructured */ +// Hrmpf ... I have tried very hard, but I just can't find a nice, generic way to clean +// up this include #include "SocketHandle.ih" //#include "SocketProtocol.mpp" @@ -152,9 +168,11 @@ namespace senf { ///< Return number of bytes available for reading without ///< blocking /**< This member will check in a (very, sigh) protocol - deqpendent way, how many bytes are guarateed to be + dependent way, how many bytes are guaranteed to be readable from the socket without blocking even if the - socket is blocking. */ + socket is blocking. If the socket does not support + reading (viz. NotReadablePolicy is set), this member + should always return \c 0.*/ virtual bool eof() const = 0; ///< Check for end-of-file condition /**< This is another check which (like available()) is @@ -218,7 +236,7 @@ namespace senf { SocketPolicy must be set to the complete socket policy of the protocol. A protocol implementation may define the protocol interface directly. It can also - (additnally) make use of multiple inheritance to combine a set of protocol facets into a + (additionally) make use of multiple inheritance to combine a set of protocol facets into a specific protocol implementation (i.e. TCPv4SocketProtocol inherits from ConcreteSocketProtocol and from the protocol facets IPv4Protocol, TCPProtocol, BSDSocketProtocol and AddressableBSDSocketProtocol). The protocol facets are not concrete @@ -276,4 +294,6 @@ namespace senf { // c-file-style: "senf" // indent-tabs-mode: nil // ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: