00001 #ifndef __APPLIC_H__
00002 #define __APPLIC_H__
00003
00004 #include "magic/mobject.h"
00005 #include "magic/mclass.h"
00006 #include "magic/mmap.h"
00007
00009
00010
00011
00012
00013
00014
00015
00017
00018 int main (int argc, char** argv);
00019
00028 class Application : public Object {
00029 decl_dynamic (Application);
00030 protected:
00031 Array<String> mParams;
00032 StringMap mParamMap;
00033 int mArgc;
00034 char** mArgv;
00035 int mTried;
00036
00037 public:
00038 Application () : mTried (0) {}
00039
00045 virtual void main (const Array<String>& params) {mTried++;}
00046
00049 virtual void main () {mTried++;}
00050
00053 void readConfig (const String& filename);
00054
00057 const StringMap& paramMap () const {return mParamMap;}
00058
00061 const Array<String>& params () const {return mParams;}
00062
00063 void setParams (int argc, char** argv);
00064
00065 private:
00066 int getTried () const {return mTried;}
00067 };
00068
00074 #define Main()\
00075 class MainClass : public Application {\
00076 decl_dynamic (MainClass);\
00077 public:\
00078 void main ();\
00079 };\
00080 impl_dynamic (MainClass, "{Application}");\
00081 void MainClass::main ()
00082
00083 extern CClass* appclass;
00084
00085 #endif