lgrSimManager.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
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

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)