Packets: Fix VariantParser invalid parser access bug
[senf.git] / Socket / Protocols / UN / UNDatagramSocketHandle.hh
index 0956525..b57996d 100644 (file)
@@ -1,6 +1,9 @@
 // $Id$
 //
-// Copyright (C) 2007 
+// 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
 // it under the terms of the GNU General Public License as published by
 /** \file
     \brief UNDatagramSocketHandle public header */
 
-#ifndef HH_UNDatagramSocketHandle_
-#define HH_UNDatagramSocketHandle_ 1
+#ifndef HH_SENF_Socket_Protocols_UN_UNDatagramSocketHandle_
+#define HH_SENF_Socket_Protocols_UN_UNDatagramSocketHandle_ 1
 
 // Custom includes
 #include "UNAddressing.hh"
-#include "UNProtocol.hh"
+#include "UNSocketProtocol.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 "UNDatagramSocketHandle.mpp"
 ///////////////////////////////hh.p////////////////////////////////////////
 
@@ -48,32 +48,31 @@ namespace senf {
         DatagramFramingPolicy,
         UnconnectedCommunicationPolicy,
         ReadablePolicy,
-        WriteablePolicy,
-        SocketBufferingPolicy
+        WriteablePolicy
         >::policy UNDatagramSocket_Policy;   ///< Socket Policy of the Unix Domain Datagram Protocol
 
     /** \brief Unix Domain Datagram Socket Protocol
 
         \par Socket Handle typedefs:
-            \ref UNDatagramSocketHandle (ProtocolClientSocketHandle)
+            \ref UNDatagramClientSocketHandle (ProtocolClientSocketHandle)
 
         \par Policy Interface: (to be checked)
             ClientSocketHandle::read(), ClientSocketHandle::readfrom(),
-            ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local(),
-            ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
+            ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local()
 
         \par Address Type:
-            UNAddress
+            UNSocketAddress
 
-        UNDatagramSocketProtocol provides an datagram protocol socket based on the unix domain  addressing.
-
-        This class is utilized as the protocol class of the ProtocolClientSocketHandle
-        via the Socket Handle typedefs above.
+        UNDatagramSocketProtocol provides an datagram protocol socket based on the unix domain
+        addressing.
 
+        This class is utilized as the protocol class of the ProtocolClientSocketHandle via the
+        Socket Handle typedefs above.
     */
     class UNDatagramSocketProtocol
-        : public ConcreteSocketProtocol<UNDatagramSocket_Policy>,
-          public UNProtocol, 
+        : public ConcreteSocketProtocol<UNDatagramSocket_Policy,
+                                        UNDatagramSocketProtocol>,
+          public UNSocketProtocol, 
           public BSDSocketProtocol,
           public AddressableBSDSocketProtocol
     {
@@ -88,29 +87,22 @@ namespace senf {
                                         /**< \note This member is implicitly called from the
                                              ProtocolClientSocketHandle::ProtocolClientSocketHandle()
                                              constructor */
-        void init_client(UNSocketAddress const & address) const;
+        void init_client(UNSocketAddress const & address) const; 
                                         ///< Create client socket and bind
                                         /**< Creates a new client socket and bind to the given
                                              address.
-                                             \param[in] local address to bind to */
+                                             \param[in] address local address to bind to */
                                         /**< \note This member is implicitly called from the
                                              ProtocolClientSocketHandle::ProtocolClientSocketHandle()
                                              constructor */
         
         ///@}
-        ///\name Abstract Interface Implementation
-
-        std::auto_ptr<SocketProtocol> clone() const;
-
-        ///@}
     };
 
     typedef ProtocolClientSocketHandle<UNDatagramSocketProtocol> UNDatagramClientSocketHandle;
 
-    typedef MakeSocketPolicy<
-        UNDatagramSocket_Policy,
-        UNAddressingPolicy
-        >::policy UNDatagramSocket_Policy;
+    ///@}
+
 }
 ///////////////////////////////hh.e////////////////////////////////////////
 //#include "UNDatagramSocketHandle.cci"