Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef logger_H_
00010 #define logger_H_
00011
00012 #include "lgrCore.h"
00013 #include "virtualConstructor.h"
00014 #include <vlutil/vlSmartPointers.h>
00015 #include <list>
00016 #include <absoluteTime.h>
00017
00018 namespace MAKLogger
00019 {
00020
00021 class DtCommand;
00022 class DtLgrDynamicLibrary;
00023 class DtLgrCommandHandler;
00024 class DtLgrCommandType;
00025 class DtLgrProtocolRegistration;
00026 class DtLgrSimManager;
00027 class DtLgrSystemDriver;
00028
00029 typedef std::list<DtBoost::shared_ptr<DtLgrDynamicLibrary> > DtLibraryList;
00030 typedef DtBoost::shared_ptr<DtLgrCommandHandler> DtLgrCommandHandlerSP;
00031
00035 class DT_DLL_LGRCORE DtLogger
00036 {
00037 public:
00038
00039 DT_VIRTUAL_CTR(DtLogger,())
00040
00041 virtual ~DtLogger();
00042
00048 virtual void init();
00049
00054 virtual void registerSimulationProtocol(DtLgrProtocolRegistration* );
00055
00057 virtual const DtLgrProtocolRegistration* simulationProtocol() const;
00058
00066 virtual bool tick();
00067
00069 virtual DtRelativeTime tickTime() const;
00070
00072 virtual void setTickTime(DtRelativeTime time);
00073
00080 virtual void submitCommand(const DtCommand& command);
00081
00083 virtual DtLgrCommandHandlerSP getCommandHandler(const DtLgrCommandType& type) const;
00084
00086 virtual const DtLibraryList& libraries() const;
00087
00089 virtual DtLgrSimManager* simManager();
00090
00092 DtLgrSystemDriver& driver();
00093
00094 protected:
00095
00096 DtLgrProtocolRegistration* myRegistration;
00097
00100 DtLgrSystemDriver* myDriver;
00101
00103 DtRelativeTime myTickTime;
00104
00105 protected:
00106
00108 static DtRelativeTime theDefaultTickTime;
00109 };
00110
00111 }
00112
00113 #endif
00114