X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FINetProtocol.hh;h=89daa57301fc96e7f28a89965b79df351dfb3b1f;hb=5ed1fa1c42763aebad06c1e4ac8fc5a19e15519a;hp=5d1f44b794a7e3804e3a2371989c46694046d5cc;hpb=9d157f1a23a3ffb224f2b1ba2398b8e936c1f58b;p=senf.git diff --git a/Socket/Protocols/INet/INetProtocol.hh b/Socket/Protocols/INet/INetProtocol.hh index 5d1f44b..89daa57 100644 --- a/Socket/Protocols/INet/INetProtocol.hh +++ b/Socket/Protocols/INet/INetProtocol.hh @@ -47,6 +47,28 @@ namespace senf { /// \addtogroup protocol_facets_group /// @{ + class INetProtocol + : public virtual SocketProtocol + { + public: + void bindInterface(std::string const & iface) const; + ///< Bind socket to specific interface + /**< When a socket is bound to an interface, it will only + receive data received on that interface. If the + interface name is empty, the binding is removed. + + \param[in] iface name of interface to bind to or empty + to remove binding + + \implementation Sets the SO_BINDTODEVICE socket option + */ + std::string bindInterface(); ///< Get bound interface + /**< Returns the interface, the socket is currently bound + to. Returns the empty string, if not bound to any + interface. + \returns Bound interface name */ + }; + /** \brief Protocol facet providing IPv4 Addressing related API This protocol facet introduces all the socket api protocol members which are related to IPv4 @@ -62,14 +84,6 @@ namespace senf { : public virtual SocketProtocol { public: - void connect(INet4SocketAddress 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(INet4SocketAddress 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 */ }; /** \brief Protocol facet providing IPv6 Addressing related API @@ -81,14 +95,6 @@ namespace senf { : 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 */ }; /// @}