首页 > 代码库 > object oriented programming : class application

object oriented programming : class application

class Thread_Sync;
class Critical;
class Info;

class Info{Info(std::string str):m_info(str){}
    private:
    std::string m_info;};

// a process need: { pre-run();run();post-run();mutex for threads, running previlledge}

#define APPL_DECLARE_APP( YourAppClass )    class YourAppClass : public Application    {    public:        YourAppClass(int argc, const char * argv[])     : Application(argc, argv) {};        virtual        int Main(int argc, ArgvType argv);    };

// provide a main() runtine
#define APPL_DEFINE_MAIN( YourAppClass )        int        main(int argc, const char * argv[])    {    a
    YourAppClass theApp(argc, argv);        return(theApp.Run());    }

class Application
{
public:
    virtual ~Application();
    int Run(){if(Startup() && Main(argc,argv)&& Shutdown()) { return true;} return false;)
    static Application & TheApp();
    bool SetProcessPriority(int priority);
protected:
    Application(int argc, const char * argv[]);
    virtual int Startup();
    virtual int Main(int argc, char ** argv) { return 1; }
    virtual int Shutdown();
private:
    Critical* m_pGuard;
    Info * m_info;int m_priority;
    int m_argc;char ** m_argv;
    static Application * pInstance;
};

 

object oriented programming : class application