X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FINetProtocol.hh;h=bedf7a8b7eb16491b707f9515247eb6a68e3920a;hb=9a988902090d28007578e93bffd809f6bd913155;hp=79a514c55669e00bbabc02c74df86abdbfc2bc54;hpb=032707d24b1059febe83ce56b11fd79df106c6e2;p=senf.git diff --git a/Socket/INetProtocol.hh b/Socket/INetProtocol.hh index 79a514c..bedf7a8 100644 --- a/Socket/INetProtocol.hh +++ b/Socket/INetProtocol.hh @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2006 +// Copyright (C) 2006 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) // Stefan Bund @@ -21,11 +21,12 @@ // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file + \brief IPv[46]Protocol public header - \todo what about OOB data? + \todo what about OOB data? \todo Implement IP_RECVERR / MSG_ERRQUEUE. This should be placed - into an additional protocol class since IP_RECVERR is only valid + into an additional protocol facet since IP_RECVERR is only valid for SOCK_DGRAM (UDP) and not SOCK_STREAM (TCP) sockets */ @@ -43,41 +44,54 @@ namespace senf { + /// \addtogroup protocol_facets_group + /// @{ - /** \brief + /** \brief Protocol facet providing IPv4 Addressing related API - \todo Is it safe, not to allow setting the interface index on - add/drop? what does it do (especially if the local addres is - given ?). What have I been thinking here ??? - - \todo move all multicast-methods into an extra - IPv4MulticastProtocol class + This protocol facet introduces all the socket api protocol members which are related to IPv4 + addressing. + + \todo Is it safe, not to allow setting the interface index on add/drop? what does it do + (especially if the local address is given ?). What have I been thinking here ??? + + \todo connect() is only available on stream sockets. We want to access bind() and connect() + via the ClientSocketHandle -> see SocketProtocol todo point */ - class IPv4Protocol + class IPv4Protocol : public virtual SocketProtocol { public: - void connect(INet4Address const & address) const; - void bind(INet4Address const & address) const; - - unsigned mcTTL() const; - void mcTTL(unsigned value) const; - - bool mcLoop() const; - void mcLoop(bool value) const; - - void mcAddMembership(INet4Address const & mcAddr) const; - void mcAddMembership(INet4Address const & mcAddr, INet4Address const & localAddr) const; + void connect(INet4Address const & address) const; ///< Connect to remote address + /**< \todo make this obsolete by allowing access to the + ClientSocketHandle from ConcreateSocketProtocol + \param[in] address Address to connect to */ + void bind(INet4Address const & address) const; ///< Set local socket address + /**< \todo make this obsolete by allowing access to the + ClientSocketHandle from ConcreateSocketProtocol + \param[in] address Address to set */ + }; - void mcDropMembership(INet4Address const & mcAddr) const; - void mcDropMembership(INet4Address const & mcAddr, INet4Address const & localAddr) const; + /** \brief Protocol facet providing IPv6 Addressing related API - void mcIface(std::string iface = std::string()) const; - }; - + This protocol facet introduces all the socket api protocol members which are related to IPv6 + addressing. + */ class IPv6Protocol : public virtual SocketProtocol - {}; + { + public: + void connect(INet6SocketAddress const & address) const; ///< Connect to remote address + /**< \todo make this obsolete by allowing access to the + ClientSocketHandle from ConcreateSocketProtocol + \param[in] address Address to connect to */ + void bind(INet6SocketAddress const & address) const; ///< Set local socket address + /**< \todo make this obsolete by allowing access to the + ClientSocketHandle from ConcreateSocketProtocol + \param[in] address Address to set */ + }; + + /// @} } @@ -90,5 +104,8 @@ namespace senf { // Local Variables: // mode: c++ +// fill-column: 100 // c-file-style: "senf" +// indent-tabs-mode: nil +// ispell-local-dictionary: "american" // End: