X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FFileHandle.hh;h=377a8a61fbd9b036928e0af3e7c825fe1e614ba9;hb=b8ca4a544cce3e6023bb56b712a03d6362f2bb79;hp=cf3fc67663eb666cff6a6d12a268b8b5cfe15828;hpb=9f0a32a3d569a0c35f2553e4648afa97f1dade58;p=senf.git diff --git a/Socket/FileHandle.hh b/Socket/FileHandle.hh index cf3fc67..377a8a6 100644 --- a/Socket/FileHandle.hh +++ b/Socket/FileHandle.hh @@ -68,6 +68,7 @@ // Custom includes #include // std::auto_ptr #include "../Utils/safe_bool.hh" +#include "../Scheduler/ClockService.hh" //#include "FileHandle.mpp" ///////////////////////////////hh.p//////////////////////////////////////// @@ -137,16 +138,31 @@ namespace senf { bool readable() const; ///< Check, whether a read on the handle would not block ///< (ignoring blocking state) - void waitReadable() const; ///< Wait, until read on the handle would not block (ignoring + bool waitReadable(senf::ClockService::clock_type timeout = -1) const; + ///< Wait, until read on the handle would not block (ignoring ///< blocking state) + /**< \param[in] timeout max time to wait, default is to wait + forever. + \returns \c true, if handle became readable or \c false on + timeout. */ bool writeable() const; ///< Check, whether a write on the handle would not block ///< (ignoring blocking state) - void waitWriteable() const; ///< Wait, until a write on the handle would not block + bool waitWriteable(senf::ClockService::clock_type timeout = -1) const; + ///< Wait, until a write on the handle would not block ///< (ignoring blocking state) + /**< \param[in] timeout max time to wait, default is to wait + forever. + \returns \c true, if handle became writable or \c false on + timeout. */ bool oobReadable() const; ///< Check, whether a read of prioritized data on the handle ///< would not block (ignoring blocking state) - void waitOOBReadable() const; ///< Wait, until read of prioritized data on the handle does + bool waitOOBReadable(senf::ClockService::clock_type timeout = -1) const; + ///< Wait, until read of prioritized data on the handle does ///< not block (ignoring blocking state) + /**< \param[in] timeout max time to wait, default is to wait + forever. + \returns \c true, if handle became readable for + out-of-band data or \c false on timeout. */ bool blocking() const; ///< Return current blocking state void blocking(bool status); ///< Set blocking state