lgrSimInterface.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 lgrSimInterface_H_
00011 #define lgrSimInterface_H_
00012 
00013 #include "lgrCore.h"
00014 #include "lgrInterface.h"
00015 #include "lgrEntityTracker.h"
00016 #include "signalSlot.h"
00017 #include "virtualConstructor.h"
00018 
00019 #include <vlutil/vlString.h>
00020 #include <vlutil/vlTime.h>
00021 #include <list>
00022 
00023 class DtExerciseConn;
00024 
00025 namespace MAKLogger
00026 {
00027    class DtLgrSimDriver;
00028    class DtLgrSimCommandFactory;
00029    class DtLgrPacketFilter;
00030 
00034    class DT_DLL_LGRCORE DtLgrSimInterface : public DtCommandInterface
00035    {
00036    public:
00037 
00039       typedef DtLgrSimCommandFactory Factory;
00040 
00041    public:
00042 
00044       DT_PURE_VIRTUAL_CTR(DtLgrSimInterface,(DtLogger&))
00045 
00046       
00047       DtLgrSimInterface(DtLogger&,const DtLgrSimDriver&);
00048 
00049    public:
00050 
00052       virtual ~DtLgrSimInterface();
00053 
00055       virtual DtString protocol() const = 0;
00056 
00058       virtual void connect() const;
00059 
00061       virtual void connectToSharedExerciseConn(DtExerciseConn* exconn,
00062          bool allowDrainInput,bool allowSetSimTime,bool allowUnsubscribe) const;
00063 
00065       virtual void disconnect() const;
00066 
00068       virtual void getLoggerName(DtString& name) const = 0;
00069 
00071       virtual bool isConnected() const;
00072 
00074       virtual void setDumpFilename(const DtString&);
00075 
00077       virtual bool processRemoteControls() const;
00078 
00081       virtual bool recordRemoteControls() const;
00082 
00084       virtual bool allowAllRemoteControls() const;
00085 
00087       virtual bool allowRemoteDelete() const;
00088 
00090       virtual int remoteControlId() const;
00091 
00093       virtual bool sendResponses() const;
00094 
00096       virtual bool crippleGui() const;
00097 
00099       virtual DtTime connectSendInterval() const;
00100 
00102       virtual DtTime heartbeatSendInterval() const;
00103 
00105       virtual void setRemoteControlSettings(bool process, bool record,
00106          bool allowDelete, bool allowAll, bool sendResponses, bool crippleGui,
00107          DtTime connectSendInterval, DtTime heartbeatSendInterval) const;
00108 
00110       virtual void addFilteredEntityName(const DtString& name) const;
00111 
00113       virtual void clearFilteredEntityNames() const;
00114 
00122       virtual void addFilter(DtLgrPacketFilter*) const;
00123 
00128       virtual void setFilterSettings(const DtLgrPacketFilter*) const;
00129 
00131       virtual int filterCount() const;
00132 
00135       virtual int filterIndex( const DtLgrPacketFilter* filter ) const;
00136 
00138       virtual void setScaleAttributes(bool scale) const;
00139 
00141       virtual bool scaleAttributes() const;
00142 
00144       virtual bool networkActivity() const;
00145 
00147 
00148       DtLgrPacketFilter* filter(int index);
00149       const DtLgrPacketFilter* filter(int index) const;
00151 
00153       DtValueSignal<int> filterCountChangedSignal;
00154 
00156       DtValueSignal<bool> connectedStatusChangedSignal;
00157 
00159       DtValueSignal<bool> activityChangedSignal;
00160 
00162       DtValueSignal<bool> crippleGuiChangedSignal;
00163 
00165       virtual const DtLgrEntityTracker* entityTracker() const;
00166 
00168       virtual void addTemporaryTrackedEntity(const DtString& name) const;
00169 
00170       typedef int EntityTrackerUpdateId;
00171       virtual EntityTrackerUpdateId entityTrackerUpdateId() const;
00172 
00173    protected:
00174 
00177       void connectResponseHandlers();
00178 
00181       virtual void connectResponseHandler(DtLgrCommandId,
00182          void (DtLgrSimInterface::*)(DtResponse));
00183 
00185 
00186       void updatedEntityTracker(DtResponse response);
00187       void connected(DtResponse);
00188       void disconnected(DtResponse);
00189       void unableToConnect(DtResponse);
00190       void lostConnection(DtResponse);
00191       void filterAdded(DtResponse);
00192       void filterRemoved(DtResponse);
00193       void filterModified(DtResponse);
00194       void remoteControlsChanged(DtResponse);
00195       void activityChanged(DtResponse);
00196       void scaleAttributesChanged(DtResponse);
00197       void remoteControlIdChanged(DtResponse);
00199 
00200 
00201    protected:
00202       bool myConnectedFlag;
00203       bool myActivityFlag;
00204       bool myProcessRemoteControls;
00205       bool myRecordRemoteControls;
00206       bool myAllowAllRemoteControls;
00207       bool myAllowRemoteDelete;
00208       bool mySendResponses;
00209       bool myCrippleGui;
00210       DtTime myConnectSendInterval;
00211       DtTime myHeartbeatSendInterval;
00212       bool myScaleAttributes;
00213       int  myFilterCount;
00214       DtString myDumpFilename;
00215       typedef std::list<DtLgrPacketFilter*> FilterTypeList;
00216       FilterTypeList myFilterList;
00217       DtLgrEntityTracker* myEntityTracker;
00218       int myEntityTrackerUpdateId;
00219       int myRemoteControlId;
00220    };
00221 
00222 }
00223 
00224 #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)