Fix documentation build under maverick (doxygen 1.7.1)
[senf.git] / senf / Socket / SocketProtocol.hh
index b41fccb..b119393 100644 (file)
 
 /** \defgroup protocol_group The Protocol Classes
 
-     <div class="diamap" name="Protocols">
-     <span coords="0,0,118,25">\ref SocketProtocol</span>
-     <span coords="139,381,279,407">\ref UNSocketProtocol</span>
-     <span coords="527,412,693,438">\ref PacketSocketProtocol</span>
-     <span coords="214,49,471,86">\ref ConcreteSocketProtocol</span>
-     <span coords="135,112,283,137">\ref BSDSocketProtocol</span>
-     <span coords="114,258,304,284">\ref DatagramSocketProtocol</span>
-     <span coords="136,320,281,346">\ref TCPSocketProtocol</span>
-     <span coords="395,446,604,472">\ref UNDatagramSocketProtocol</span>
-     <span coords="89,189,329,215">\ref AddressableBSDSocketProtocol</span>
-     <span coords="282,481,444,507">\ref TCPv4SocketProtocol</span>
-     </div>
-     \htmlonly <img src="Protocols.png" border="0" alt="Protocols" usemap="#Protocols"> \endhtmlonly
+    \diaimage Protocols.dia
 
     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
 #include "SocketHandle.ih"
 
 //#include "SocketProtocol.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 
 namespace senf {
 
     /// \addtogroup protocol_group
-    /// @{
+    //\{
 
     class SocketPolicyBase;
 
@@ -115,16 +103,16 @@ namespace senf {
 
         \attention SocketProtocol must \e always be inherited using public \e virtual inheritance.
      */
-    class SocketProtocol 
+    class SocketProtocol
         : boost::noncopyable
     {
     public:
-        ///////////////////////////////////////////////////////////////////////////
+        //-////////////////////////////////////////////////////////////////////////
         // Types
 
-        ///////////////////////////////////////////////////////////////////////////
+        //-////////////////////////////////////////////////////////////////////////
         ///\name Structors and default members
-        ///@{
+        //\{
 
         SocketProtocol();
         virtual ~SocketProtocol() = 0;
@@ -133,13 +121,13 @@ namespace senf {
         // no copy
         // no conversion constructors
 
-        ///@}
-        ///////////////////////////////////////////////////////////////////////////
+        //\}
+        //-////////////////////////////////////////////////////////////////////////
 
         virtual SocketPolicyBase const & policy() const = 0;
         ///< Access the policy instance
 
-        ///////////////////////////////////////////////////////////////////////////
+        //-////////////////////////////////////////////////////////////////////////
         // Virtual interface
 
         virtual unsigned available() const = 0;
@@ -150,7 +138,7 @@ namespace senf {
                                              in a single (non-blocking) read operation. If the
                                              socket does not support reading (viz. NotReadablePolicy
                                              is set), this member should always return \c 0.
-                                             
+
                                              Depending on the protocol, it may not be possible to
                                              return a good value. In this case, an upper bound may
                                              be returned (e.g.: When reading from a socket which
@@ -171,16 +159,16 @@ namespace senf {
         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
                                              socket whenever it is called. Additionally it will
                                              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;
@@ -192,7 +180,7 @@ namespace senf {
                                              \a lod value with a default value of 0. The
                                              interpretation of the \a lod value is completely
                                              implementation defined.
-                                             
+
                                              Every class derived from SocketProtocol should
                                              reimplement state(). The reimplemented method should
                                              call (all) baseclass-implementations of this
@@ -203,21 +191,21 @@ namespace senf {
                                              keys are interpreted as hierarchical strings with '.'
                                              as a separator (like hostnames or struct or class
                                              members). They are automatically sorted correctly.
-                                             
+
                                              The values are std:string with one additional feature:
                                              they allow assignment or conversion from *any* type as
                                              long as that type is streamable. This simplifies
                                              assigning non-string values to the map:
-                                             
+
                                              \code
                                                  map["socket.protocol.ip.address"] << peer();
                                                  map["socket.protocol.tcp.backlog"] << backlog();
                                              \endcode
-                                             
+
                                              This will work even if peer() returns an ip-address
                                              object or backlog() returns an integer. The values are
                                              automatically converted to their string representation.
-                                             
+
                                              Additionally, if the slot the date is written to is not
                                              empty, the <tt>\<\<</tt> operator will add add a comma
                                              as separator. */
@@ -249,7 +237,7 @@ namespace senf {
 
         friend class SocketBody;
     };
-    
+
     template <class SPolicy> class ClientSocketHandle;
     template <class SPolicy> class ServerSocketHandle;
 
@@ -268,7 +256,7 @@ namespace senf {
         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
         overlap, since otherwise there will be problems resolving overlapping members.
-        
+
         \doc init_client init_server
      */
     template <class SocketPolicy, class Self>
@@ -276,14 +264,14 @@ namespace senf {
         : public virtual SocketProtocol
     {
     public:
-        ///////////////////////////////////////////////////////////////////////////
+        //-////////////////////////////////////////////////////////////////////////
         // Types
 
         typedef SocketPolicy Policy;    ///< The protocols policy
 
-        ///////////////////////////////////////////////////////////////////////////
+        //-////////////////////////////////////////////////////////////////////////
         ///\name Structors and default members
-        ///@{
+        //\{
 
         ~ConcreteSocketProtocol() = 0;
 
@@ -291,13 +279,13 @@ namespace senf {
         // no copy
         // no conversion constructors
 
-        ///@}
-        ///////////////////////////////////////////////////////////////////////////
+        //\}
+        //-////////////////////////////////////////////////////////////////////////
 
         Policy const & policy() const;
-        
+
     protected:
-        ClientSocketHandle<Policy> clientHandle() const; 
+        ClientSocketHandle<Policy> clientHandle() const;
                                         ///< Get client handle for associated socket
                                         /**< Returns a client handle for the socket associated with
                                              this protocol instance */
@@ -314,10 +302,10 @@ namespace senf {
         Policy policy_;
     };
 
-    /// @}
+    //\}
 }
 
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #include "SocketProtocol.cci"
 //#include "SocketProtocol.ct"
 #include "SocketProtocol.cti"