X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FSocketProtocol.hh;h=b41fccb8b05e182579462235abe3db3a3e5f30d0;hb=a1fdb7bb122f0b05be809a922d4b7ef5e125fa67;hp=db71a83e8fbe4314a6bddaeaba2c1464db3c48e4;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git
diff --git a/Socket/SocketProtocol.hh b/Socket/SocketProtocol.hh
index db71a83..b41fccb 100644
--- a/Socket/SocketProtocol.hh
+++ b/Socket/SocketProtocol.hh
@@ -32,22 +32,19 @@
/** \defgroup protocol_group The Protocol Classes
- \htmlonly
-
-
- \endhtmlonly
+
+ \ref SocketProtocol
+ \ref UNSocketProtocol
+ \ref PacketSocketProtocol
+ \ref ConcreteSocketProtocol
+ \ref BSDSocketProtocol
+ \ref DatagramSocketProtocol
+ \ref TCPSocketProtocol
+ \ref UNDatagramSocketProtocol
+ \ref AddressableBSDSocketProtocol
+ \ref TCPv4SocketProtocol
+
+ \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
@@ -92,8 +89,8 @@
accessibility of the socket body from all facets.
*/
-#ifndef HH_SocketProtocol_
-#define HH_SocketProtocol_ 1
+#ifndef HH_SENF_Socket_SocketProtocol_
+#define HH_SENF_Socket_SocketProtocol_ 1
// Custom includes
#include
@@ -171,10 +168,11 @@ namespace senf {
not support the notion of EOF, this member should
always return \c false. */
- virtual void close() const; ///< Close socket
+ virtual void close(); ///< Close socket
/**< This override will automatically \c shutdown() the
socket whenever it is closed.
- \throws senf::SystemException */
+ \throws senf::SystemException
+ \fixme Move into (at least) BSDSOcketProtocol */
virtual void terminate() const; ///< Forcibly close socket
/**< This override will automatically \c shutdown() the
@@ -182,7 +180,8 @@ namespace senf {
disable SO_LINGER to ensure, that v_terminate will not
block. Like the overriden method, this member will ignore
failures and will never throw. It is therefore safe to be
- called from a destructor. */
+ called from a destructor.
+ \fixme Move into (at least) BSDSocketProtocol */
virtual void state(SocketStateMap & map, unsigned lod) const;
///< Return socket state information
@@ -264,7 +263,7 @@ namespace senf {
A protocol implementation may define the protocol interface directly. It can also
(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,
+ ConcreteSocketProtocol and from the protocol facets IPv4SocketProtocol, TCPSocketProtocol,
BSDSocketProtocol and AddressableBSDSocketProtocol). The protocol facets are not concrete
protocols themselves, they are combined to build concrete protocols. This structure will
remove a lot of code duplication. It is important to ensure, that the protocol facets do not