X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketProtocol.hh;h=1f962e353e0cc9a5b855a412305c4daaa28b1bd5;hb=cb10487f67b404334eaffa60f074b8eca8f871de;hp=1935b6ee06191860abb7fadf15071a0631ea3599;hpb=983ae64545d03ca24e7c5cb2c9ed2749435844eb;p=senf.git diff --git a/Socket/SocketProtocol.hh b/Socket/SocketProtocol.hh index 1935b6e..1f962e3 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 @@ -90,7 +90,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" @@ -103,7 +104,7 @@ namespace senf { class SocketPolicyBase; - /** \brief Socket protocol base class + /** \brief Socket Protocol base class This is the base class of all socket protocol classes. Every protocol class must directly or indirectly inherit from SocketProtocol @@ -152,9 +153,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 @@ -211,14 +214,14 @@ namespace senf { }; - /** \brief Concrete socket protocol implementation base class + /** \brief Concrete Socket Protocol implementation base class ConcreteSocketProtocol is the base class of a concrete socket protocol implementation. The final protocol class must inherit from ConcreteSocketProtocol. The template argument \a 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 +279,6 @@ namespace senf { // c-file-style: "senf" // indent-tabs-mode: nil // ispell-local-dictionary: "american" +// compile-command: "scons -u test" +// comment-column: 40 // End: