Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef lgrApplication_H_
00010 #define lgrApplication_H_
00011
00012 #include "lgrApp.h"
00013
00014 #include <list>
00015 #include <vlutil/vlSmartPointers.h>
00016 #include <vlutil/vlString.h>
00017
00018 class DtPrinter;
00019
00020 struct tagMSG;
00021
00022 namespace MAKLogger
00023 {
00024 class DtLgrAppGuiInterface;
00025 class DtLgrAppCommandLine;
00026 class DtLgrConsole;
00027 class DtLogger;
00028 class DtLoggerAppConfigLoader;
00029 class DtThreadedLogger;
00030
00031 typedef DtBoost::shared_ptr<DtThreadedLogger> DtThreadedLoggerSP;
00032 typedef DtBoost::shared_ptr<DtLgrConsole> DtLgrConsoleSP;
00033 typedef DtBoost::shared_ptr<DtLgrAppGuiInterface> DtLgrAppGuiInterfaceSP;
00034
00037 class DT_DLL_LGRAPP DtLoggerApplication
00038 {
00039 public:
00040 DtLoggerApplication();
00041 virtual ~DtLoggerApplication();
00042
00045 virtual void initialize(int argc,char** argv, DtString configFile);
00046
00049
00050 virtual DtString getConfigFilename( int argc, char** argv, DtString configFile);
00053 virtual void run();
00054
00056 DtString language() const;
00057
00059
00060 virtual DtLogger& logger();
00061 virtual const DtLogger& logger() const;
00063
00066 virtual DtLgrAppGuiInterfaceSP gui();
00067
00069 virtual DtLgrConsoleSP console();
00070
00072 typedef void (*GuiStartupCallback)(DtLgrAppGuiInterfaceSP);
00073
00075 virtual void registerGuiStartupCallback(GuiStartupCallback callback);
00076
00078 virtual void executeGuiStartupCallbacks();
00079
00080 typedef bool (*WinEventFilterFunction)(tagMSG *msg, long *result);
00081 static WinEventFilterFunction winEventFilter();
00082 static void setWinEventFilter(WinEventFilterFunction function);
00083
00086 static void initFPUnit();
00087
00088 protected:
00089
00092 void setOutputLog(const DtString& logFilename);
00093
00095 virtual void processConfigurationFile(const DtString& configFile);
00096
00098 virtual void processCommandLineArguments( int argc, char** argv );
00099
00101 virtual void initializeGui();
00102
00104 virtual void initializeConsole();
00105
00106
00110 virtual void enableLoggerAppPlugins();
00111
00112 DtThreadedLoggerSP myLogger;
00113 DtLgrConsoleSP myConsole;
00114 DtLgrAppGuiInterfaceSP myGui;
00115 DtLoggerAppConfigLoader* myLoader;
00116 DtLgrAppCommandLine* myCommandLine;
00117 DtString myLogFileName;
00118 DtPrinter* myLogFilePrinter;
00119
00120 typedef std::list<GuiStartupCallback> GuiStartupCallbackList;
00121 GuiStartupCallbackList myStartupCallbacks;
00122
00123 static WinEventFilterFunction theCurrentWinEventFunction;
00124 };
00125
00126 }
00127
00128 #endif