Listing 2: Abstract server class ABSEventHandler

// Internal error event
#define INTERNAL_ERROR         0
// Boolean values definitions
#define FALSE                  0
#define TRUE                   1

typedef int Bool;

class ABSEventHandler;

// A typedef for a pointer to an event handler function
typedef Bool (ABSEventHandler::*FuncABSTransition )( void* );

class ABSEventHandler
{
 friend class FSM;

 public :
    ABSEventHandler(int inNumberTransitions) 
    {functions = new FuncABSTransition[inNumberTransitions];}
    virtual ~ABSEventHandler(void) {};

 protected:
    // A pointer to an array of event handler pointers
    FuncABSTransition* functions;
    // Pure virtual function to redefine in derived class
    virtual void FillHandlersArray( void ) = 0;
};
//End of File