connectedUnixDgramSocket working
dw6 [Wed, 19 Dec 2007 17:57:47 +0000 (17:57 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@583 270642c3-0616-0410-b53a-bc976706d245

Socket/Protocols/UN/ConnectedUNDatagramSocketHandle.cc [new file with mode: 0644]
Socket/Protocols/UN/ConnectedUNDatagramSocketHandle.hh

diff --git a/Socket/Protocols/UN/ConnectedUNDatagramSocketHandle.cc b/Socket/Protocols/UN/ConnectedUNDatagramSocketHandle.cc
new file mode 100644 (file)
index 0000000..385549a
--- /dev/null
@@ -0,0 +1,59 @@
+// Copyright (C) 2007 
+// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
+// Kompetenzzentrum NETwork research (NET)
+//     David Wagner <david.wagner@fokus.fraunhofer.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
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc.,
+// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+/** \file
+    \brief ConnectedUNDatagramSocketHandle non-inline non-template implementation */
+
+#include "ConnectedUNDatagramSocketHandle.hh"
+
+// Custom includes
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+
+#include "../../../Utils/Exception.hh"
+
+//#include "UNDatagramSocketHandle.mpp"
+#define prefix_
+///////////////////////////////cc.p////////////////////////////////////////
+
+prefix_ void senf::ConnectedUNDatagramSocketProtocol::init_client() const
+{
+    int sock = ::socket(PF_UNIX,SOCK_DGRAM,0);
+    if (sock < 0)
+        throwErrno();
+   fd(sock);
+}
+
+prefix_ void senf::ConnectedUNDatagramSocketProtocol::init_client(UNSocketAddress const & address) const 
+{
+    init_client();
+    connect(address);
+}
+
+prefix_ std::auto_ptr<senf::SocketProtocol> senf::ConnectedUNDatagramSocketProtocol::clone()
+    const
+{
+    return std::auto_ptr<SocketProtocol>(new ConnectedUNDatagramSocketProtocol());
+}
+
+///////////////////////////////cc.e////////////////////////////////////////
+#undef prefix_
+//#include "UNDatagramSocketHandle.mpp"
index cc57a8f..2e29ea4 100644 (file)
@@ -74,7 +74,8 @@ namespace senf {
         : public ConcreteSocketProtocol<ConnectedUNDatagramSocket_Policy>,
           public UNProtocol, 
           public BSDSocketProtocol,
-          public AddressableBSDSocketProtocol
+          public AddressableBSDSocketProtocol,
+          public senf::pool_alloc_mixin<ConnectedUNDatagramSocketProtocol>
     {
     public:
         ///////////////////////////////////////////////////////////////////////////