X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FUN%2FUNAddressing.hh;h=eccb8d3578d9dd71c04cd5cb60896093bee1949e;hb=3863d46dd898b7bc35ea8c6ccd8563b18762a6b6;hp=fc918a30483238c668b8326b4cb21b7295b36c01;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/Socket/Protocols/UN/UNAddressing.hh b/Socket/Protocols/UN/UNAddressing.hh index fc918a3..eccb8d3 100644 --- a/Socket/Protocols/UN/UNAddressing.hh +++ b/Socket/Protocols/UN/UNAddressing.hh @@ -23,21 +23,16 @@ /** \file \brief UNAddressing public header */ -#ifndef HH_UNAddressing_ -#define HH_UNAddressing_ 1 +#ifndef HH_SENF_Socket_Protocols_UN_UNAddressing_ +#define HH_SENF_Socket_Protocols_UN_UNAddressing_ 1 // Custom includes #include #include #include #include -#include -#include -#include "../../../Socket/SocketPolicy.hh" -#include "../../../Socket/ClientSocketHandle.hh" -#include "../../../Socket/CommunicationPolicy.hh" -#include "../../../Socket/Protocols/GenericAddressingPolicy.hh" -#include "../../../Utils/safe_bool.hh" +#include "../BSDAddressingPolicy.hh" +#include "../BSDSocketAddress.hh" //#include "UNAddressing.mpp" ///////////////////////////////hh.p//////////////////////////////////////// @@ -52,31 +47,26 @@ 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 BSDSocketAddress { public: + static short const addressFamily = AF_UNIX; + UNSocketAddress(); - explicit UNSocketAddress(std::string p); + + explicit UNSocketAddress(std::string const & path); ///< Construct an address constant from given path - static UNSocketAddress from_string(std::string const s); - ///< Create UNSocketAddress from string - bool operator==(UNSocketAddress const & other) const; - ///< Compare UNSocketAddress for equality + UNSocketAddress(const UNSocketAddress& other); + UNSocketAddress& operator=(const UNSocketAddress& other); std::string path() const ; ///< Return path as string + void path(std::string const & path); - 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() const; + using BSDSocketAddress::sockaddr_p; + using BSDSocketAddress::socklen_p; private: struct sockaddr_un addr_; @@ -94,32 +84,32 @@ namespace senf { /** \brief Addressing policy supporting unix domain addressing \par Address Type: - UNAddress + UNSocketAddress This addressing policy implements addressing using unix domain addresses. The various members are directly imported from - GenericAddressingPolicy which see for a detailed + BSDAddressingPolicyMixin which see for a detailed documentation. */ struct UNAddressingPolicy - : public AddressingPolicyBase, - private GenericAddressingPolicy + : public BSDAddressingPolicy, + private BSDAddressingPolicyMixin { typedef UNSocketAddress Address; - using GenericAddressingPolicy::peer; - using GenericAddressingPolicy::local; - using GenericAddressingPolicy::connect; - using GenericAddressingPolicy::bind; + using BSDAddressingPolicyMixin::peer; + using BSDAddressingPolicyMixin::local; + using BSDAddressingPolicyMixin::connect; + using BSDAddressingPolicyMixin::bind; }; ///@} } ///////////////////////////////hh.e//////////////////////////////////////// -//#include "UNAddressing.cci" +#include "UNAddressing.cci" //#include "UNAddressing.ct" //#include "UNAddressing.cti" #endif