Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

mapplic.h

Go to the documentation of this file.
00001 
00025 #ifndef __MAGIC_MAPPLIC_H__
00026 #define __MAGIC_MAPPLIC_H__
00027 
00028 #include "magic/mobject.h"
00029 #include "magic/mclass.h"
00030 #include "magic/mmap.h"
00031 
00032 BEGIN_NAMESPACE (MagiC);
00033 
00035 //                                                                          //
00036 //               _             | o                 o                        //
00037 //              / \   --   --  |    ___   ___   |           _               //
00038 //             /   \ |  ) |  ) | | |   \  ___| -+- |  __  |/ \              //
00039 //             |---| |--  |--  | | |     (   |  |  | /  \ |   |             //
00040 //             |   | |    |    | |  \__/  \__|   \ | \__/ |   |             //
00041 //                                                                          //
00043 
00044 int main (int argc, char** argv);
00045 
00054 class Application : public Object {
00055     decl_dynamic (Application);
00056   protected:
00057     Array<String>   mParams;
00058     StringMap       mParamMap;
00059     int             mArgc;
00060     char**          mArgv;
00061     String          mAppPath;
00062     String          mDataDir;
00063     Array<String>   mConfigPath;
00064     int             mTried;
00065 
00066   public:
00067                         Application     () : mTried (0) {}
00068 
00074     virtual void        main            (const Array<String>& params) {mTried++;}
00075 
00078     virtual void        main            () {mTried++;}
00079 
00080     void                readConfig      (const String& filename);
00081 
00084     const StringMap&    paramMap        () const {return mParamMap;}
00085 
00088     const Array<String>& params         () const {return mParams;}
00089 
00090     const String&       appPath         () const {return mAppPath;}
00091     const String&       dataDir         () const {return mDataDir;}
00092 
00093     void                setParams       (int argc, char** argv);
00094 
00095     int&                argc            () {return mArgc;}
00096     char**              argv            () const {return mArgv;}
00097 
00098   private:
00099     void                initConfigPath  ();
00100     int                 getTried        () const {return mTried;}
00101 };
00102 
00108 #define Main()\
00109 class MainClass : public Application {\
00110     decl_dynamic (MainClass);\
00111   public:\
00112     void main ();\
00113 };\
00114 impl_dynamic (MainClass, "{Application}");\
00115 void MainClass::main ()
00116 
00117 extern Class* appclass;
00118 
00119 END_NAMESPACE;
00120 
00121 #endif
00122 

Generated on Thu Feb 10 20:06:41 2005 for LibMagiC by doxygen1.2.18