Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef lgrSimManager_H_
00010 #define lgrSimManager_H_
00011
00012 #include "lgrCore.h"
00013 #include "filePosition.h"
00014 #include "lgrSimDriver.h"
00015 #include <vlutil/vlString.h>
00016 #include <list>
00017 #include "lgrEntityTracker.h"
00018
00019 namespace MAKLogger
00020 {
00021
00022 class DtPacket;
00023 class DtLgrPacketFilter;
00024 class DtAbsoluteTime;
00025 class DtLgrSimInput;
00026 class DtLgrSimOutput;
00027 class DtLgrFileInput;
00028 class DtLgrFileOutput;
00029 class DtMessageState;
00030 class DtLegacyLoggerFile;
00031 class DtTimeProvider;
00032 class DtCheckpointPolicy;
00033 class DtLgrVRFMessageFilter;
00034 class DtMessageIOInfo;
00035
00038 class DT_DLL_LGRCORE DtLgrSimManager
00039 {
00040 public:
00041 DtLgrSimManager();
00042 virtual ~DtLgrSimManager();
00043
00045 virtual bool isConnected() const = 0;
00046
00048 virtual void tick() = 0;
00049
00051 virtual bool scaleAttributes() const;
00052
00054 virtual void setScaleAttributes(bool enable);
00055
00059 virtual DtLgrFileInput* openFileForInput(const DtString& filename) const = 0;
00060
00064 virtual DtLgrFileOutput* openFileForCopying(const DtString& filename,
00065 const DtLgrFileInput* input) const = 0;
00066
00071 virtual DtLgrFileOutput* openFileForOutput(const DtString& filename) const = 0;
00072
00074 virtual DtLgrFileInput* openPartialFileForCopying(
00075 const DtLgrFileOutput* output, DtFilePosition firstPacket,
00076 DtFilePosition lastPacket) const = 0;
00077
00079 virtual DtMessageState* createState() const = 0;
00080
00082 virtual const DtLgrSimInput* input() const = 0;
00084 virtual DtLgrSimInput* input() = 0;
00085
00087 virtual const DtLgrSimOutput* output() const = 0;
00089 virtual DtLgrSimOutput* output() = 0;
00090
00092 virtual const DtMessageState* state() const = 0;
00094 virtual DtMessageState* state() = 0;
00095
00097 virtual const DtTimeProvider* timeProvider() const = 0;
00098
00100 virtual bool activity() const = 0;
00101
00104 virtual DtAbsoluteTime simTime() const = 0;
00105
00109 virtual int remoteControlId() const;
00110
00112 virtual void setRemoteControlId(int id);
00113
00115 virtual void activateFilters(const DtMessageIOInfo* info);
00116
00118 virtual void deactivateFilters();
00119
00121 virtual bool filter(DtPacket* packet);
00122
00125 virtual int addFilter(DtLgrPacketFilter* filter);
00126
00130 virtual int removeFilter(const DtLgrPacketFilter* filter);
00131
00133 virtual int filterCount() const;
00134
00137 virtual int filterIndex(const DtLgrPacketFilter* filter) const;
00138
00140
00141 virtual DtLgrPacketFilter* filterByIndex(int index);
00142 virtual const DtLgrPacketFilter* filterByIndex(int index) const;
00144
00145 virtual void setHeartbeatIntervals(const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& intervals);
00146 virtual const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& heartbeatIntervals() const;
00147
00148 virtual void setTimeoutIntervals(const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& intervals);
00149 virtual const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& timeoutIntervals() const;
00150
00152 virtual void updateEntityTracker(const DtString& tracker);
00153
00156 virtual void setAllowEntityTracking(bool trackingEnabled);
00157
00159 virtual DtLgrEntityTracker* entityTracker();
00160
00161 virtual void addTemporaryTrackedEntity(const DtString& name);
00162
00164 virtual void setEntityTracker(DtLgrEntityTracker* tracker);
00165
00166 virtual void setConfigurationFileName(const DtString& filename) = 0;
00167
00168 protected:
00169 int myRemoteControlId;
00170 DtLgrEntityTracker* myEntityTracker;
00171 bool myIsTrackingEnabled;
00172 bool myScaleAttributesFlag;
00173 typedef std::list<DtLgrPacketFilter*> FilterList;
00174 FilterList myFilterList;
00175 std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord> myHeartbeatIntervals;
00176 std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord> myTimeoutIntervals;
00177
00178 };
00179
00180 }
00181
00182 #endif