X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FUN%2FUNAddressing.hh;h=22e16712022e5b0e59c7ebc10a47a2e46531cf11;hb=1ad3873b372da6187b1fbc645bf276287d2efb54;hp=f30cfdd82e7dd18b15880fe3f95fe748eb59f6f2;hpb=4225a17d92c3692e6d3f96a8dd5cb432cd402e61;p=senf.git diff --git a/Socket/Protocols/UN/UNAddressing.hh b/Socket/Protocols/UN/UNAddressing.hh index f30cfdd..22e1671 100644 --- a/Socket/Protocols/UN/UNAddressing.hh +++ b/Socket/Protocols/UN/UNAddressing.hh @@ -1,6 +1,7 @@ -// $Id$ -// // Copyright (C) 2007 +// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) +// Kompetenzzentrum NETwork research (NET) +// David Wagner // // 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 @@ -30,16 +31,17 @@ #include #include #include -#include "boost/filesystem/path.hpp" #include "../../../Socket/SocketPolicy.hh" #include "../../../Socket/ClientSocketHandle.hh" #include "../../../Socket/CommunicationPolicy.hh" #include "../../../Socket/Protocols/GenericAddressingPolicy.hh" -#include "UNAddress.hh" +#include "../../../Utils/safe_bool.hh" //#include "UNAddressing.mpp" ///////////////////////////////hh.p//////////////////////////////////////// + namespace senf { + /** \brief Unix domain socket address UNSocketAddress wraps the standard sockaddr_un datatype. It provides simple accessor methods @@ -48,27 +50,37 @@ namespace senf { \implementation This implementation is based on sockaddr_un. \ingroup addr_group + + \fixme Why both std::string constructor and from_string member ? */ class UNSocketAddress - : public ComparableSafeBool + : public comparable_safe_bool { public: - - //UNSocketAddress(); - explicit UNSocketAddress(boost::filesystem::path p); + UNSocketAddress(); + explicit UNSocketAddress(std::string p); ///< Construct an address constant from given path - static UNSocketAddress from_string(std::string const s); ///< Create UNSocketAddress from string - static UNSocketAddress from_path(boost::filesystem::path const p); ///< Create UNSocketAddress from path - std::string path() const ; ///< Return path as string - struct sockaddr_un sockaddr(); + static UNSocketAddress from_string(std::string const s); + ///< Create UNSocketAddress from string + + bool operator==(UNSocketAddress const & other) const; + ///< Compare UNSocketAddress for equality + + std::string path() const ; ///< Return path as string + + bool boolean_test() const; ///< \c true, if address is not empty + + void clear(); ///< Clear address + struct sockaddr * sockaddr_p() ; struct sockaddr const * sockaddr_p() const; - unsigned sockaddr_len(); + unsigned sockaddr_len() const; + private: - struct sockaddr_un sockAddr; + struct sockaddr_un addr_; }; - /** \brief Write path os + /** \brief Write path to os \related UNSocketAddress */ @@ -89,7 +101,6 @@ namespace senf { GenericAddressingPolicy which see for a detailed documentation. */ - struct UNAddressingPolicy : public AddressingPolicyBase, private GenericAddressingPolicy @@ -101,7 +112,10 @@ namespace senf { using GenericAddressingPolicy::connect; using GenericAddressingPolicy::bind; }; + + ///@} } + ///////////////////////////////hh.e//////////////////////////////////////// //#include "UNAddressing.cci" //#include "UNAddressing.ct"