X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FUN%2FUNAddressing.hh;h=22e16712022e5b0e59c7ebc10a47a2e46531cf11;hb=1ad3873b372da6187b1fbc645bf276287d2efb54;hp=af121f089e22b0edfbd3d2f34dd52246e6935601;hpb=f00a102138bcbabdaab1caab1db6a8876463dedc;p=senf.git diff --git a/Socket/Protocols/UN/UNAddressing.hh b/Socket/Protocols/UN/UNAddressing.hh index af121f0..22e1671 100644 --- a/Socket/Protocols/UN/UNAddressing.hh +++ b/Socket/Protocols/UN/UNAddressing.hh @@ -31,17 +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 "../../../Utils/safe_bool.hh" -#include "UNAddress.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 @@ -50,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 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 */ @@ -91,7 +101,6 @@ namespace senf { GenericAddressingPolicy which see for a detailed documentation. */ - struct UNAddressingPolicy : public AddressingPolicyBase, private GenericAddressingPolicy @@ -103,7 +112,10 @@ namespace senf { using GenericAddressingPolicy::connect; using GenericAddressingPolicy::bind; }; + + ///@} } + ///////////////////////////////hh.e//////////////////////////////////////// //#include "UNAddressing.cci" //#include "UNAddressing.ct"