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;
115 bool removeDriver(DtLgrCommandType type);
121 const DtLgrSimManager* simManager() const;
123 DtLgrSimManager* simManager();
126 virtual
void loadPluginLibrary(const
DtString& filename);
129 void setNotifyLevel(
int vlLevel,
int lgrLevel);
132 void setBasicGuiFlag(
bool basic);
135 void issueTextCommand(const
DtString& textCommand);
138 void setEntityTracking(
bool enableEntityTracking);
141 bool entityTracking() const;
144 void setFastJumpsWithoutDiff(
bool enableFastJumpsWithoutDiff);
147 bool fastJumpsWithoutDiff() const;
150 void setPlaybackReadTimeLimit(
double readTimeLimit);
153 double playbackReadTimeLimit() const;
156 void setNasmpMode (const
DtString& nasmpMode);
159 int notifyLevel() const;
162 bool basicGuiFlag()const;
168 NasmpMode nasmpMode() const;
171 bool nasmpFlag(NasmpFlag flag);
174 void sendMessage(const
DtString& message);
192 void startLongOperation(const
DtString& name,
bool interruptible);
195 void updateLongOperation(const
DtString& message,
int progress);
198 void finishLongOperation();
201 void cancelLongOperation();
204 bool isLongOperationCanceled() const;
233 static const
int NasmpModeMask = 0x0f;
234 static const
int NasmpModeNone = 0x00;
235 static const
int NasmpModeSnnf = 0x01;
237 static const
int NasmpFlagMask = 0xf0;
238 static const
int NasmpFlagFast = 0x10;
245 virtual
void unloadLibraries();
251 virtual
void tickDrivers();
254 virtual
void lockDrivers();
257 virtual
void unlockDrivers();
260 virtual
void processCommands();
267 void lookupCommandId(DtCommand& command);
270 virtual
void processCommand(const DtCommand& command);
276 DtCommandMap myCommandMap;
279 DtDriverList myDriverList;
280 DtDriverMap myDriverMap;
283 DtLgrCommandHandler* myPipelineOwner;
285 DtLgrSimManager* mySimManager;
301 bool myEntityTracking;
304 bool myFastJumpsWithoutDiff;
306 DtMutex myCommandHandlerMutex;
310 NasmpFlags myNasmpFlags;