00001 // Application.h 00002 00003 #ifndef A_Application_H 00004 #define A_Application_H 00005 00006 class Application { 00007 public: 00008 virtual ~Application() {} 00009 virtual int main(int argC, char **argV) = 0; 00010 virtual int initialize(int argC, char **argV) = 0; 00011 virtual int run(void) = 0; 00012 virtual int terminate(int sig = 0) = 0; 00013 static Application * TheApplication(void) { return _theApplication; } 00014 protected: 00015 static Application * _theApplication; 00016 Application(void) {}; 00017 }; 00018 00019 #endif 00020