Go to the documentation of this file.00001
00002
00003
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