www.pudn.com > Chesssource.rar > System.h


#if !defined(_SYSTEM_H_) 
#define _SYSTEM_H_ 
 
enum Purposes { 
    NOPURPOSE = 0, 
    INITPURPOSE, 
    SHUTDOWNPURPOSE, 
    FRAMEPURPOSE 
  }; 
     
class cStateManager 
{ 
  typedef struct sState { 
    void (*Function)(void *Ptr, long Purpose); 
    sState *Next; 
 
    sState() 
    { 
      Function = NULL; 
      Next = NULL; 
    } 
 
    ~sState() 
    { 
      delete Next; 
    } 
  } sState; 
 
  protected: 
    sState *m_StateParent; 
 
  public: 
    cStateManager(); 
    ~cStateManager(); 
 
    void Push(void (*Function)(void *Ptr, long Purpose), void *DataPtr = NULL); 
    BOOL Pop(void *DataPtr = NULL); 
    void PopAll(void *DataPtr = NULL); 
    BOOL Process(void *DataPtr = NULL); 
}; 
 
#endif