X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FBSDSocketProtocol.hh;h=fbffeba855e5254fe03d8b9d0f0492ffa5264a94;hb=3cb0a2ff50b8f1111da34b696e64fb1b037cd683;hp=5e08b5906d7ca2ede7b74c696444a0a826100650;hpb=d04ae6002c7fa6eccaa2acdfb49b16cccdb81845;p=senf.git diff --git a/Socket/Protocols/BSDSocketProtocol.hh b/Socket/Protocols/BSDSocketProtocol.hh index 5e08b59..fbffeba 100644 --- a/Socket/Protocols/BSDSocketProtocol.hh +++ b/Socket/Protocols/BSDSocketProtocol.hh @@ -1,8 +1,8 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -59,27 +59,7 @@ namespace senf { 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 @@ -89,7 +69,12 @@ namespace senf { /**< Changes the packet queueing priority. Additionally may set protocol specific options. For IPv4 sockets, it sets the TOS field. - \param[in] v new socket priority */ + \param[in] value new socket priority */ + + int error() const; ///< Get and clear pending socket error + /**< This call will get and clear 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 @@ -109,6 +94,24 @@ namespace senf { 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 */ }; /// @}