Socket: Move protocol into the socket body (as private base class) and allow non...
[senf.git] / Socket / Protocols / INet / TCPSocketHandle.hh
index f018473..dffd668 100644 (file)
 #define HH_TCPSocketHandle_ 1
 
 // Custom includes
-#include "../../../Utils/pool_alloc_mixin.hh"
 #include "INetProtocol.hh"
 #include "TCPProtocol.hh"
 #include "../../../Socket/Protocols/BSDSocketProtocol.hh"
 #include "../../../Socket/FramingPolicy.hh"
 #include "../../../Socket/CommunicationPolicy.hh"
 #include "../../../Socket/ReadWritePolicy.hh"
-#include "../../../Socket/BufferingPolicy.hh"
 #include "../../../Socket/ProtocolClientSocketHandle.hh"
 #include "../../../Socket/ProtocolServerSocketHandle.hh"
 
@@ -55,8 +53,7 @@ namespace senf {
         StreamFramingPolicy,
         ConnectedCommunicationPolicy,
         ReadablePolicy,
-        WriteablePolicy,
-        SocketBufferingPolicy
+        WriteablePolicy
         >::policy TCPv4Socket_Policy;   ///< Socket Policy of the TCPv4 Protocol
 
     /** \brief IPv4 TCP Socket Protocol
@@ -82,12 +79,11 @@ namespace senf {
         \see TCPv6SocketProtocol
      */
     class TCPv4SocketProtocol
-        : public ConcreteSocketProtocol<TCPv4Socket_Policy>,
+        : public ConcreteSocketProtocol<TCPv4Socket_Policy,TCPv4SocketProtocol>,
           public IPv4Protocol,
           public TCPProtocol,
           public BSDSocketProtocol,
-          public AddressableBSDSocketProtocol,
-          public senf::pool_alloc_mixin<TCPv4SocketProtocol>
+          public AddressableBSDSocketProtocol
     {
     public:
         ///////////////////////////////////////////////////////////////////////////
@@ -126,11 +122,6 @@ namespace senf {
                                              constructor */
 
         ///@}
-        ///\name Abstract Interface Implementation
-
-        std::auto_ptr<SocketProtocol> clone() const;
-
-        ///@}
     };
 
     typedef ProtocolClientSocketHandle<TCPv4SocketProtocol> TCPv4ClientSocketHandle;
@@ -164,12 +155,11 @@ namespace senf {
         \see TCPv4SocketProtocol
      */
     class TCPv6SocketProtocol
-        : public ConcreteSocketProtocol<TCPv6Socket_Policy>,
+        : public ConcreteSocketProtocol<TCPv6Socket_Policy,TCPv6SocketProtocol>,
           public IPv6Protocol,
           public TCPProtocol,
           public BSDSocketProtocol,
-          public AddressableBSDSocketProtocol,
-          public senf::pool_alloc_mixin<TCPv6SocketProtocol>
+          public AddressableBSDSocketProtocol
     {
     public:
         ///////////////////////////////////////////////////////////////////////////
@@ -208,11 +198,6 @@ namespace senf {
                                              constructor */
 
         ///@}
-        ///\name Abstract Interface Implementation
-
-        std::auto_ptr<SocketProtocol> clone() const;
-
-        ///@}
     };
 
     typedef ProtocolClientSocketHandle<TCPv6SocketProtocol> TCPv6ClientSocketHandle;