9 #ifndef lgrSystemDriver_H_
10 #define lgrSystemDriver_H_
21 #include <vlutil/vlTime.h>
30 class DtLgrDynamicLibrary;
31 class DtLgrSystemCommandFactory;
33 class DtMessagePipeline;
34 class DtRuntimeCommandFactory;
35 class DtLgrProtocolRegistration;
38 typedef std::list<DtBoost::shared_ptr<DtLgrDynamicLibrary> >
DtLibraryList;
74 virtual
bool timeToShutdown() const;
77 virtual
void submitCommand(const
DtCommand& command);
93 bool releasePipeline();
96 const DtLgrCommandHandler* pipelineOwner() const;
108 virtual
bool wasListeningOnIdle() const;
111 virtual
bool isListeningOnIdle() const;
124 bool removeDriver(DtLgrCommandType type);
130 const DtLgrSimManager* simManager() const;
132 DtLgrSimManager* simManager();
135 virtual
void loadPluginLibrary(const
DtString& filename);
138 void setNotifyLevel(
int vlLevel,
int lgrLevel);
141 void setBasicGuiFlag(
bool basic);
144 void setGuiConfigFilename(
DtString guiConfigFilename);
147 void setPerformanceThreshold(
double performanceThreshold);
150 void issueTextCommand(const
DtString& textCommand);
153 void setEntityTracking(
bool enableEntityTracking);
156 bool entityTracking() const;
159 void setFastJumpsWithoutDiff(
bool enableFastJumpsWithoutDiff);
162 bool fastJumpsWithoutDiff() const;
165 void setPlaybackReadTimeLimit(
double readTimeLimit);
168 double playbackReadTimeLimit() const;
171 void setNasmpMode (const
DtString& nasmpMode);
174 int notifyLevel() const;
177 bool basicGuiFlag()const;
186 NasmpMode nasmpMode() const;
189 bool nasmpFlag(NasmpFlag flag);
192 void sendMessage(const
DtString& message);
210 void startLongOperation(const
DtString& name,
bool interruptible);
213 void updateLongOperation(const
DtString& message,
int progress);
216 void finishLongOperation();
219 void cancelLongOperation();
222 bool isLongOperationCanceled() const;
253 static const
int NasmpModeMask = 0x0f;
254 static const
int NasmpModeNone = 0x00;
255 static const
int NasmpModeSnnf = 0x01;
257 static const
int NasmpFlagMask = 0xf0;
258 static const
int NasmpFlagFast = 0x10;
265 virtual
void unloadLibraries();
271 virtual
void tickDrivers();
274 virtual
void lockDrivers();
277 virtual
void unlockDrivers();
280 virtual
void processCommands();
287 void lookupCommandId(DtCommand& command);
290 virtual
void processCommand(const DtCommand& command);
297 DtTime myTickOverhead;
298 bool myPerformanceWarning;
299 double myPerformanceThreshold;
301 DtCommandMap myCommandMap;
304 DtDriverList myDriverList;
305 DtDriverMap myDriverMap;
308 DtLgrCommandHandler* myPipelineOwner;
310 DtLgrSimManager* mySimManager;
329 bool myEntityTracking;
332 bool myFastJumpsWithoutDiff;
334 DtMutex myCommandHandlerMutex;
338 NasmpFlags myNasmpFlags;