TCApplication.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef _TC_APPLICATION_H_
00036 #define _TC_APPLICATION_H_
00037
00038 #include "TCNonCopyable.h"
00039
00040 #include <vector>
00041 #include <string>
00042 #include <cstdarg>
00043
00044 namespace TC
00045 {
00067 class TCBASE_API Application: protected NonCopyAble
00068 {
00069 public:
00071 Application();
00073 virtual ~Application();
00074
00076 virtual void Init(sint32 numArg, char **argv,
00077 const std::string &name, const std::string &version);
00078
00080 static Application* GetInstance();
00081
00083 inline const std::string& GetProgrammName() const { return m_programm_name;}
00085 inline const std::string& GetProgrammVersion() const { return m_programm_version;}
00086
00094 void ErrorMessage(const std::string &routineName, const char* message_id, ...);
00102 void WarningMessage(const std::string &routineName, const char* message_id, ...);
00110 void InfoMessage (const std::string &routineName, const char* message_id, ...);
00118 void ErrorMessageBox(const std::string &routineName, const char* message_id, ...);
00126 void WarningMessageBox(const std::string &routineName, const char* message_id, ...);
00131 void AlwaysStdOut(bool output) {m_display_std_out = output; }
00132
00133 protected:
00134 void displayUsage();
00135
00136 std::string getMessageOfId(const char* message_id, va_list arguments);
00137
00138 virtual void processArguments(const std::vector< std::string > &) {};
00139 virtual std::string getUsage() { return ""; }
00140
00141 virtual void displayErrorMessage(const std::string &,
00142 const std::string &) {};
00143 virtual void displayWarningMessage(const std::string &,
00144 const std::string &) {};
00145 virtual void displayInfoMessage (const std::string &,
00146 const std::string &) {};
00147 virtual void displayErrorMessageBox(const std::string &routineName,
00148 const std::string &message) { displayErrorMessage(routineName, message); };
00149 virtual void displayWarningMessageBox(const std::string &routineName,
00150 const std::string &message) { displayWarningMessage(routineName, message);};
00151
00152 protected:
00153 std::vector< std::string > m_programm_arguments;
00154
00155 std::string m_programm_name;
00156 std::string m_programm_version;
00157
00158 bool m_display_std_out;
00159
00160 private:
00161 static Application *m_application;
00162 };
00163
00168 }
00169
00170 #endif // _TCBASE_APPLICATION_H_