X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketProtocol.hh;h=206f7ccf29cd0a804f26683cc204e7c4a257b78c;hb=3d5b1045dc2531f239a3af4a8f3b17b1fe31549c;hp=e4f9f211b5ef203bbab97c76a7749360ccbce531;hpb=04dd5d565dc0a5888f8d26bbcb12e9d325d6a4e5;p=senf.git
diff --git a/Socket/SocketProtocol.hh b/Socket/SocketProtocol.hh
index e4f9f21..206f7cc 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
+
+
+ \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
@@ -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"
@@ -110,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:
///////////////////////////////////////////////////////////////////////////
@@ -152,9 +169,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 +237,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 +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: