X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketProtocol.hh;h=206f7ccf29cd0a804f26683cc204e7c4a257b78c;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=6ce9c6119bb52f48c2f7031d1cc258fe535cd6e8;hpb=c13146edc1b57cc60f102bcfd1a7a602ecec261f;p=senf.git diff --git a/Socket/SocketProtocol.hh b/Socket/SocketProtocol.hh index 6ce9c61..206f7cc 100644 --- a/Socket/SocketProtocol.hh +++ b/Socket/SocketProtocol.hh @@ -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 @@ -50,9 +65,9 @@ protocols are implemented using a simple multiple-inheritance hierarchy as shown above. Since the protocol class is protocol specific (how intelligent ...), the protocol class also - defines the complete socket policy to be used with it's protocol. Complete meaning, that every - policy axis must be assigned it's the most specific (that is derived) policy class to be used - with the protocol. + defines the \e complete socket policy to be used with it's protocol. Complete meaning, that + every policy axis must be assigned it's the most specific (that is derived) policy class to be + used with the protocol and that no policy axis is allowed to be left unspecified. \see \ref handle_group \n @@ -111,7 +126,8 @@ namespace senf { \attention SocketProtocol must \e always be inherited using public \e virtual inheritance. */ - class SocketProtocol : boost::noncopyable + class SocketProtocol + : boost::noncopyable { public: /////////////////////////////////////////////////////////////////////////// @@ -155,7 +171,9 @@ namespace senf { /**< This member will check in a (very, sigh) protocol 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 @@ -277,4 +295,6 @@ namespace senf { // c-file-style: "senf" // indent-tabs-mode: nil // ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: