handles are provided.
The FdEvent class is an implementation of the RAII idiom: The event will be automatically
- unregistered in the FdEvent destructor. The TimerEvent instance should be created
- within the same scope or on a scope below where the callback is defined (e.g. if the
- callback is a member function it should be defined as a class member).
+ unregistered in the FdEvent destructor. The FdEvent instance should be created within the
+ same scope or on a scope below where the callback is defined (e.g. if the callback is a
+ member function it should be defined as a class member).
*/
class FdEvent
: public detail::FIFORunner::TaskInfo,
void disable(); ///< Disable event
void enable(); ///< Enable event
- bool enabled(); ///< \c true if event enabled, \c false otherwise
FdEvent & action(Callback const & cb); ///< Change event callback
private:
virtual void signal(int events);
- virtual void run();
+ virtual void v_run();
+ virtual char const * v_type() const;
+ virtual std::string v_info() const;
Callback cb_;
int fd_;
friend class detail::FileDispatcher;
};
-}}
+ /** \brief Get file descriptor from handle object
-int retrieve_filehandle(int fd);
+ This function will query the \a handle for it's file descriptor. The real implementation
+ must be provided by a freestanding function \c retrieve_filehandle(Handle const & h) within
+ the namespace of \a Handle.
+ */
+ template <class Handle>
+ int get_descriptor(Handle const & handle);
+}}
///////////////////////////////hh.e////////////////////////////////////////
#include "FdEvent.cci"