9 #ifndef lgrSystemDriver_H_
10 #define lgrSystemDriver_H_
28 class DtLgrDynamicLibrary;
29 class DtLgrSystemCommandFactory;
31 class DtMessagePipeline;
32 class DtRuntimeCommandFactory;
33 class DtLgrProtocolRegistration;
35 typedef std::list<DtBoost::shared_ptr<DtLgrDynamicLibrary> >
DtLibraryList;
71 virtual
bool timeToShutdown() const;
74 virtual
void submitCommand(const
DtCommand& command);
90 bool releasePipeline();
93 const DtLgrCommandHandler* pipelineOwner() const;
112 bool removeDriver(DtLgrCommandType type);
118 const DtLgrSimManager* simManager() const;
120 DtLgrSimManager* simManager();
123 virtual
void loadPluginLibrary(const
DtString& filename);
126 void setNotifyLevel(
int vlLevel,
int lgrLevel);
129 void setBasicGuiFlag(
bool basic);
132 void issueTextCommand(const
DtString& textCommand);
135 void setEntityTracking(
bool enableEntityTracking);
138 bool entityTracking() const;
141 void setFastJumpsWithoutDiff(
bool enableFastJumpsWithoutDiff);
144 bool fastJumpsWithoutDiff() const;
147 void setPlaybackReadTimeLimit(
double readTimeLimit);
150 double playbackReadTimeLimit() const;
153 void setNasmpMode (const
DtString& nasmpMode);
156 int notifyLevel() const;
159 bool basicGuiFlag()const;
165 NasmpMode nasmpMode() const;
168 bool nasmpFlag(NasmpFlag flag);
171 void sendMessage(const
DtString& message);
189 void startLongOperation(const
DtString& name,
bool interruptible);
192 void updateLongOperation(const
DtString& message,
int progress);
195 void finishLongOperation();
198 void cancelLongOperation();
201 bool isLongOperationCanceled() const;
230 static const
int NasmpModeMask = 0x0f;
231 static const
int NasmpModeNone = 0x00;
232 static const
int NasmpModeSnnf = 0x01;
234 static const
int NasmpFlagMask = 0xf0;
235 static const
int NasmpFlagFast = 0x10;
242 virtual
void unloadLibraries();
248 virtual
void tickDrivers();
251 virtual
void lockDrivers();
254 virtual
void unlockDrivers();
257 virtual
void processCommands();
264 void lookupCommandId(DtCommand& command);
267 virtual
void processCommand(const DtCommand& command);
273 DtCommandMap myCommandMap;
276 DtDriverList myDriverList;
277 DtDriverMap myDriverMap;
280 DtLgrCommandHandler* myPipelineOwner;
282 DtLgrSimManager* mySimManager;
298 bool myEntityTracking;
301 bool myFastJumpsWithoutDiff;
303 DtMutex myCommandHandlerMutex;
307 NasmpFlags myNasmpFlags;