// $Id$
//
-// Copyright (C) 2006
+// Copyright (C) 2006
// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
// Stefan Bund <stefan.bund@fokus.fraunhofer.de>
// 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
*/
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 */
+ };
+
+ /// @}
}
\f
// Local Variables:
// mode: c++
+// fill-column: 100
// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
// End: