lgrSimDriver.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00009 
00010 #ifndef lgrSimDriver_H_
00011 #define lgrSimDriver_H_
00012 
00013 #include "lgrCore.h"
00014 #include "lgrDriver.h"
00015 #include "lgrEntityTracker.h"
00016 #include <map>
00017 #include <vlutil/vlTime.h>
00018 
00019 namespace MAKLogger
00020 {
00021    class DtLgrSimCommandFactory;
00022    class DtLgrSimInterface;
00023    class DtLgrSimManager;
00024    class DtLgrSystemDriver;
00025    class DtLgrPacketFilter;
00026    class DtLgrEntityIdFilter;
00027    class DtLgrVRFMessageFilter;
00028 
00032    class DT_DLL_LGRCORE DtLgrSimDriver : public DtLgrCommandHandler
00033    {
00034    public:
00035       typedef DtLgrSimCommandFactory Factory;
00036       typedef DtLgrSimInterface Interface;
00037 
00039       typedef std::pair<double, bool> HeartbeatTimeRecord;
00040 
00042       static DtLgrSimDriver* getFromLogger(const DtLogger& logger);
00043 
00045       DtLgrSimDriver(DtLgrSystemDriver& systemDriver);
00046 
00048       virtual ~DtLgrSimDriver();
00049 
00051       virtual void tick();
00052 
00054       virtual bool isConnected() const = 0;
00055 
00057       virtual void addPacketFilter(DtLgrPacketFilter* filter);
00058 
00060       virtual void removeFilter(const DtLgrPacketFilter* filter);
00061 
00063       virtual bool activity() const;
00064 
00066       virtual int filterCount() const;
00067 
00069       virtual const DtLgrPacketFilter* filter(int index) const;
00070 
00072 
00073       virtual DtLgrSimManager* simManager() = 0;
00074       virtual const DtLgrSimManager* simManager() const = 0;
00076 
00078       virtual bool processRemoteControls() const;
00079 
00081       virtual bool recordRemoteControls() const;
00082 
00084       virtual bool allowAllRemoteControls() const;
00085 
00087       virtual bool allowRemoteDelete() const;
00088 
00090       virtual bool sendResponses() const;
00091 
00093       virtual bool crippleGui() const;
00094 
00096       virtual DtTime connectSendInterval() const;
00097 
00099       virtual DtTime heartbeatSendInterval() const;
00100 
00102       virtual bool scaleAttributes() const;
00103 
00105       virtual const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& heartbeatIntervals() const;
00106 
00108       virtual const std::map<DtString, DtLgrSimDriver::HeartbeatTimeRecord>& timeoutIntervals() const;
00109 
00111       virtual void updateEntityTracker(const DtString& tracker);
00112 
00114       virtual DtLgrEntityTracker* entityTracker();
00115 
00116       virtual void addTemporaryTrackedEntity(const DtString& name);
00117 
00118    protected:
00119 
00121       virtual void setActivity(bool activity);
00122 
00124       virtual void setVRFMessageFiltering(bool filter,int lowId,int hiId);
00125 
00127 
00128 
00129       virtual DtResponse addFilter(const DtCommand& command);
00130       virtual DtResponse connect(const DtCommand& command) = 0;
00131       virtual DtResponse connectShared(const DtCommand& command) = 0;
00132       virtual DtResponse disconnect(const DtCommand& command) = 0;
00133       virtual DtResponse setFilterSettings(const DtCommand& command);
00134       virtual DtResponse setScaleAttributes(const DtCommand& command);
00135       virtual DtResponse setVRFFiltering(const DtCommand& command);
00136       virtual DtResponse addFilteredEntityName(const DtCommand& command);
00137       virtual DtResponse clearFilteredEntityNames(const DtCommand& command);
00138       virtual DtResponse setHeartbeatIntervals(const DtCommand& command);
00139       virtual DtResponse setTimeoutIntervals(const DtCommand& command);
00140       virtual DtResponse addTemporaryTrackedEntity(const DtCommand& command);
00142 
00144       virtual DtResponse setRemoteControlSettings(const DtCommand& command);
00145       virtual DtResponse setRemoteControlId(const DtCommand& command);
00146 
00147    protected:
00148 
00149       bool myProcessRemoteControls;
00150       bool myRecordRemoteControls;
00151       bool myAllowAllRemoteControls;
00152       bool myAllowRemoteDelete;
00153       bool mySendResponses;
00154       bool myCrippleGui;
00155       DtTime myConnectSendInterval;
00156       DtTime myHeartbeatSendInterval;
00157       bool myActivity;
00158       DtLgrVRFMessageFilter* myVRFMessageFilter;
00159       DtLgrEntityIdFilter* myEntityIdFilter;
00160       DtLgrSystemDriver* myDriver;
00161 
00162       DtLgrEntityTracker::TrackerUpdateId myLastEntityTrackerUpdate;
00163       DtTime myLastEntityTrackerUpdateTime;
00164       DtClock myTrackerUpdateClock;
00165    };
00166 
00167 }
00168 
00169 #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)