Files
2022-12-13 12:44:04 +01:00

55 lines
1.5 KiB
C++

#ifndef _CDEV_EVENT_HANDLER_H_
#define _CDEV_EVENT_HANDLER_H_ 1
#include "cdevTime.h"
class CDEV_REACTOR_API cdevEventHandler
{
friend class cdevReactor;
public:
enum {
READ_MASK = 0x01,
EXCEPT_MASK = 0x02,
WRITE_MASK = 0x04,
DONT_CALL = 0x100
} REACTOR_MASK;
private:
void setReactor (cdevReactor * r);
cdevEventHandler * getNext (void );
void setNext (cdevEventHandler * n);
cdevTime & getNextTimeout (void);
protected:
cdevEventHandler * next;
cdevTime nextTimeout;
cdevReactor * reactor;
cdevTime timeoutRate;
int mask;
public:
cdevEventHandler ( void );
virtual ~cdevEventHandler ( void );
virtual void setMask ( unsigned Mask );
virtual void setHandle ( int handle );
virtual int getHandle ( void ) const;
virtual int getMask ( void );
virtual cdevReactor * getReactor ( void );
virtual cdevTime & getTimeoutRate ( void );
virtual void setTimeoutRate ( cdevTime time );
virtual void resetTimer ( void );
virtual int handleInput ( void );
virtual int handleOutput ( void );
virtual int handleExcept ( void );
virtual int handleTimeout ( void );
virtual int handleSignal ( void );
virtual int handleClose ( void );
};
#endif