/** \file
\brief BSDSocketProtocol public header */
-#ifndef HH_BSDSocketProtocol_
-#define HH_BSDSocketProtocol_ 1
+#ifndef HH_SENF_Socket_Protocols_BSDSocketProtocol_
+#define HH_SENF_Socket_Protocols_BSDSocketProtocol_ 1
// Custom includes
#include "../../Socket/SocketProtocol.hh"
forever.
\param[in] enable \c true to activate linger
\param[in] timeout linger timeout in seconds */
-
- };
-
- /** \brief Protocol facet providing basic connection oriented BSD socket functions
-
- AddressableBSDSocketProtocol provides the BSD socket API as it generically applies to
- addressable (connection oriented) sockets.
- */
- class AddressableBSDSocketProtocol
- : public virtual SocketProtocol
- {
- public:
- bool reuseaddr() const; ///< Return current reuseaddr state
- /**< \returns \c true if \c SO_REUSEADDR is currently
- enabled, \c false otherwise*/
- void reuseaddr(bool value) const; ///< Set reuseraddr state
- /**< A \c true value enables \c SO_REUSEADDR, \c false will
- disable it.
- \param[in] value new \c SO_REUSEADDR state */
-
- boost::uint8_t priority() const; ///< Get packet priority assigned to outgoing packets
+ boost::uint8_t priority() const; ///< Get packet priority assigned to outgoing packets
/**< This call will return the priority value assigned to
packets sent via this socket. Depending on the
protocol, this value may also be placed inside the
sets the TOS field.
\param[in] value new socket priority */
+ int error() const; ///< Get and clear pending socket error
+ /**< This call will get <em>and clear</em> a pending socket
+ error. This includes asynchronous errors received via
+ the network (e.g. via ICMP). */
+
unsigned rcvbuf() const; ///< Check receive buffer size
/**< \returns size of receive buffer in bytes
\internal Linux doubles the buffer size internally when
void sndbuf(unsigned size) const; ///< Change size of send buffer
/**< \param[in] size new send buffer size */
+ };
+
+ /** \brief Protocol facet providing basic connection oriented BSD socket functions
+
+ AddressableBSDSocketProtocol provides the BSD socket API as it generically applies to
+ addressable (connection oriented) sockets.
+ */
+ class AddressableBSDSocketProtocol
+ : public virtual SocketProtocol
+ {
+ public:
+ bool reuseaddr() const; ///< Return current reuseaddr state
+ /**< \returns \c true if \c SO_REUSEADDR is currently
+ enabled, \c false otherwise*/
+ void reuseaddr(bool value) const; ///< Set reuseraddr state
+ /**< A \c true value enables \c SO_REUSEADDR, \c false will
+ disable it.
+ \param[in] value new \c SO_REUSEADDR state */
};
/// @}