9 #ifndef lgrSystemDriver_H_
10 #define lgrSystemDriver_H_
28 class DtLgrDynamicLibrary;
29 class DtLgrSystemCommandFactory;
31 class DtMessagePipeline;
32 class DtRuntimeCommandFactory;
33 class DtLgrProtocolRegistration;
36 typedef std::list<DtBoost::shared_ptr<DtLgrDynamicLibrary> >
DtLibraryList;
72 virtual
bool timeToShutdown() const;
75 virtual
void submitCommand(const
DtCommand& command);
91 bool releasePipeline();
94 const DtLgrCommandHandler* pipelineOwner() const;
106 virtual
bool wasListeningOnIdle() const;
109 virtual
bool isListeningOnIdle() const;
122 bool removeDriver(DtLgrCommandType type);
128 const DtLgrSimManager* simManager() const;
130 DtLgrSimManager* simManager();
133 virtual
void loadPluginLibrary(const
DtString& filename);
136 void setNotifyLevel(
int vlLevel,
int lgrLevel);
139 void setBasicGuiFlag(
bool basic);
142 void issueTextCommand(const
DtString& textCommand);
145 void setEntityTracking(
bool enableEntityTracking);
148 bool entityTracking() const;
151 void setFastJumpsWithoutDiff(
bool enableFastJumpsWithoutDiff);
154 bool fastJumpsWithoutDiff() const;
157 void setPlaybackReadTimeLimit(
double readTimeLimit);
160 double playbackReadTimeLimit() const;
163 void setNasmpMode (const
DtString& nasmpMode);
166 int notifyLevel() const;
169 bool basicGuiFlag()const;
175 NasmpMode nasmpMode() const;
178 bool nasmpFlag(NasmpFlag flag);
181 void sendMessage(const
DtString& message);
199 void startLongOperation(const
DtString& name,
bool interruptible);
202 void updateLongOperation(const
DtString& message,
int progress);
205 void finishLongOperation();
208 void cancelLongOperation();
211 bool isLongOperationCanceled() const;
240 static const
int NasmpModeMask = 0x0f;
241 static const
int NasmpModeNone = 0x00;
242 static const
int NasmpModeSnnf = 0x01;
244 static const
int NasmpFlagMask = 0xf0;
245 static const
int NasmpFlagFast = 0x10;
252 virtual
void unloadLibraries();
258 virtual
void tickDrivers();
261 virtual
void lockDrivers();
264 virtual
void unlockDrivers();
267 virtual
void processCommands();
274 void lookupCommandId(DtCommand& command);
277 virtual
void processCommand(const DtCommand& command);
283 DtCommandMap myCommandMap;
286 DtDriverList myDriverList;
287 DtDriverMap myDriverMap;
290 DtLgrCommandHandler* myPipelineOwner;
292 DtLgrSimManager* mySimManager;
308 bool myEntityTracking;
311 bool myFastJumpsWithoutDiff;
313 DtMutex myCommandHandlerMutex;
317 NasmpFlags myNasmpFlags;