Packets: Fix VariantParser invalid parser access bug
[senf.git] / Socket / Protocols / INet / RawINetSocketHandle.hh
index 2886c7f..e0001fa 100644 (file)
@@ -1,8 +1,8 @@
 // $Id: RawINetSocketHandle.hh 597 2008-01-15 09:16:20Z g0dil $
 //
-// Copyright (C) 2007 
-// Fraunhofer Institute for Open Communication Systems (FOKUS) 
-// Competence Center NETwork research (NET), St. Augustin, GERMANY 
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     David Wagner <dw6@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
-#ifndef RAWINETSOCKETHANDLE_HH_
-#define RAWINETSOCKETHANDLE_HH_
+#ifndef HH_SENF_Socket_Protocols_INet_RawINetSocketHandle_
+#define HH_SENF_Socket_Protocols_INet_RawINetSocketHandle_
 
 
 // Custom includes
-#include "INetProtocol.hh"
-#include "RawINetProtocol.hh"
-#include "MulticastProtocol.hh"
+#include "INetSocketProtocol.hh"
+#include "RawINetSocketProtocol.hh"
+#include "MulticastSocketProtocol.hh"
 #include "../../../Socket/Protocols/BSDSocketProtocol.hh"
+#include "../../../Socket/Protocols/DatagramSocketProtocol.hh"
 #include "../../../Socket/FramingPolicy.hh"
 #include "../../../Socket/CommunicationPolicy.hh"
 #include "../../../Socket/ReadWritePolicy.hh"
@@ -57,11 +58,10 @@ namespace senf {
 
         \par Policy Interface:
             ClientSocketHandle::read(), ClientSocketHandle::readfrom(),
-            ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local(),
-            ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
+            ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local()
 
         \par Address Type:
-            INet4Address
+            INet4SocketAddress
 
         RawV4SocketProtocol provides an internet protocol raw socket based on IPv4 addressing.
         This socket will put data written to it onto the IPv4 layer: if you call writeto don't inlude the header!
@@ -74,14 +74,12 @@ namespace senf {
         \see RawV6SocketProtocol
      */
     class RawV4SocketProtocol
-        : public ConcreteSocketProtocol<RawV4Socket_Policy>,
-          public IPv4Protocol,
-          public RawINetProtocol,
+        : public ConcreteSocketProtocol<RawV4Socket_Policy, RawV4SocketProtocol>,
+          public RawINetSocketProtocol,
           public BSDSocketProtocol,
           public AddressableBSDSocketProtocol,
-         public MulticastProtocol,
-         public INet4MulticastProtocol,
-         public senf::pool_alloc_mixin<RawV4SocketProtocol>
+          public DatagramSocketProtocol,
+          public INet4MulticastSocketProtocol
     {
     public:
         ///////////////////////////////////////////////////////////////////////////
@@ -104,11 +102,6 @@ namespace senf {
                                              \param[in] address local address to bind to */
 
         ///@}
-        ///\name Abstract Interface Implementation
-
-        std::auto_ptr<SocketProtocol> clone() const;
-
-        ///@}
     };
 
     typedef ProtocolClientSocketHandle<RawV4SocketProtocol> RawV4ClientSocketHandle;
@@ -132,8 +125,7 @@ namespace senf {
 
         \par Policy Interface: 
             ClientSocketHandle::read(), ClientSocketHandle::readfrom(),
-            ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local(),
-            ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
+            ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local()
 
         \par Address Type:
             INet6Address
@@ -149,14 +141,12 @@ namespace senf {
         \see RawV4SocketProtocol
      */
     class RawV6SocketProtocol
-        : public ConcreteSocketProtocol<RawV6Socket_Policy>,
-          public IPv6Protocol,
-          public RawINetProtocol,
+        : public ConcreteSocketProtocol<RawV6Socket_Policy,RawV6SocketProtocol>,
+          public RawINetSocketProtocol,
           public BSDSocketProtocol,
           public AddressableBSDSocketProtocol,
-         public MulticastProtocol,
-         public INet4MulticastProtocol,
-         public senf::pool_alloc_mixin<RawV6SocketProtocol>
+          public DatagramSocketProtocol,
+          public INet6MulticastSocketProtocol
     {
     public:
         ///////////////////////////////////////////////////////////////////////////
@@ -183,11 +173,6 @@ namespace senf {
                                              constructor */
 
         ///@}
-        ///\name Abstract Interface Implementation
-
-        std::auto_ptr<SocketProtocol> clone() const;
-
-        ///@}
     };
 
     typedef ProtocolClientSocketHandle<RawV6SocketProtocol> RawV6ClientSocketHandle;
@@ -196,4 +181,4 @@ namespace senf {
 
 }
 
-#endif /*RAWINETSOCKETHANDLE_HH_*/
+#endif /*HH_SENF_Socket_Protocols_INet_RawINetSocketHandle_*/