4 #ifndef _libiqnet_reactor_h_
5 #define _libiqnet_reactor_h_
8 #include "net_except.h"
24 virtual void handle_input(
bool& ) {}
25 virtual void handle_output(
bool& ) {}
38 virtual Socket::Handler get_handler()
const = 0;
49 network_error(
"iqnet::Reactor: no handlers given.",
false ) {}
52 enum Event_mask { INPUT=1, OUTPUT=2 };
60 fd(fd_), mask(0), revents(0) {}
63 fd(fd_), mask(m), revents(0) {}
71 typedef std::list<HandlerState> HandlerStateList;
76 virtual void register_handler(
Event_handler*, Event_mask ) = 0;
77 virtual void unregister_handler(
Event_handler*, Event_mask ) = 0;
83 virtual bool handle_events( Timeout ms = -1 ) = 0;