set keyword svn property on more files
[senf.git] / Socket / Protocols / UN / UNAddressing.cc
index 763d667..e9525c9 100644 (file)
@@ -1,7 +1,9 @@
+// $Id$
+//
 // Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
+// Fraunhofer Institute for Open Communication Systems (FOKUS) 
 // Kompetenzzentrum NETwork research (NET)
-//     David Wagner <david.wagner@fokus.fraunhofer.de>
+//     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
 // Custom includes
 #include <stdio.h>
 #include <boost/operators.hpp>
-#include <boost/filesystem/path.hpp>
 
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
-prefix_ senf::UNSocketAddress::UNSocketAddress(boost::filesystem::path p)
+
+prefix_ senf::UNSocketAddress::UNSocketAddress()
+{}
+
+prefix_ senf::UNSocketAddress::UNSocketAddress(std::string p)
 {
-    chdir(p.branch_path().string().c_str());
-//Check if the unix domain socket already exists...
-    if(!remove(p.leaf().c_str()))
-       printf("File already existed and therefore was deleted!\n");
-    else
-       printf("File not found, will be created.\n");
-    fflush(stdout);
-
-    sockAddr.sun_family = AF_UNIX; 
-    strcpy(sockAddr.sun_path, p.string().c_str());
+    clear();
+    ::strncpy(addr_.sun_path, p.c_str(), sizeof(addr_.sun_path));
+    addr_.sun_path[sizeof(addr_.sun_path)-1] = 0;
 }
 
-    prefix_ senf::UNSocketAddress fromString(std::string s)
+prefix_ senf::UNSocketAddress fromString(std::string s) 
 {
-    return senf::UNSocketAddress::UNSocketAddress(boost::filesystem::path(s));
+    return senf::UNSocketAddress::UNSocketAddress(s);
 }
 
-    prefix_ senf::UNSocketAddress fromPath(boost::filesystem::path p)
+prefix_ bool senf::UNSocketAddress::operator==(UNSocketAddress const & other)
+    const
 {
-    return senf::UNSocketAddress::UNSocketAddress(p);
+    return path() == other.path();
 }
-    prefix_ std::string senf::UNSocketAddress::path()
+
+prefix_ std::string senf::UNSocketAddress::path()
         const
 {
-    return std::string(sockAddr.sun_path);
+    return std::string(addr_.sun_path);
+}
+
+prefix_ bool senf::UNSocketAddress::boolean_test()
+    const
+{
+    return addr_.sun_path[0] != 0;
 }
 
-prefix_ sockaddr_un senf::UNSocketAddress::sockaddr()
+prefix_ void senf::UNSocketAddress::clear()
 {
-    struct sockaddr_un out; 
-    out.sun_family = sockAddr.sun_family;
-    strcpy(out.sun_path, sockAddr.sun_path);
-    return out; 
+    ::memset(&addr_, 0, sizeof(addr_));
+    addr_.sun_family = AF_UNIX;
 }
 
 prefix_ sockaddr * senf::UNSocketAddress::sockaddr_p()
 {
-    return reinterpret_cast <struct sockaddr  *> (&sockAddr); 
+    return reinterpret_cast <struct sockaddr  *> (&addr_); 
 }
 
-
 prefix_ sockaddr const  * senf::UNSocketAddress::sockaddr_p()
     const
 {
-    return reinterpret_cast <struct sockaddr const  *> (&sockAddr); 
+    return reinterpret_cast <struct sockaddr const  *> (&addr_); 
 }
 
 prefix_ unsigned senf::UNSocketAddress::sockaddr_len()
+       const
 {
-    return sizeof(sockAddr);
+    return sizeof(addr_);
 }
 
-prefix_ std::ostream & operator<<(std::ostream & os, senf::UNSocketAddress::UNSocketAddress const & addr){
+prefix_ std::ostream & operator<<(std::ostream & os,
+                                  senf::UNSocketAddress::UNSocketAddress const & addr)
+{
     os << addr.path();
     return os;
 }
 
-
 ///////////////////////////////cc.e////////////////////////////////////////
 #undef prefix_
 //#include "UNAddressing.mpp"