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<std::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;
180 DtString guiConfigFilename() const;
183 DtString nasmpModeString() 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();
283 virtual DtString commandDescription( const DtString& commandName) const;
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;
323 DtString myGuiConfigFilename;
326 DtString myNasmpMode;
329 bool myEntityTracking;
332 bool myFastJumpsWithoutDiff;
334 DtMutex myCommandHandlerMutex;
338 NasmpFlags myNasmpFlags;
The logger command which contains the command type and its parameters.
Definition: lgrCommand.h:110
The command type structure.
Definition: lgrCommand.h:29
This class provides the base interface for DtLgrCommandHandler.
Definition: lgrDriver.h:35
#define DT_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where CLASS_NAME...
Definition: virtualConstructor.h:34
NasmpFlag
Definition: lgrSystemDriver.h:54
Relative Time, an elapsed duration of time, no implied measurement, could be seconds/cycles or ticks ...
Definition: absoluteTime.h:28
Definition: lgrSystemDriver.h:50
Contains Logger exceptions.
unsigned char DtLgrDomainId
Definition: lgrCommand.h:23
The factory for creating logger system commands.
Definition: lgrSystemCommandFactory.h:26
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
NasmpMode
Definition: lgrSystemDriver.h:48
Contains MAKLogger::Contains DtCommandDefinition and MAKLogger::DtRuntimeCommandFactory classes...
std::map< DtLgrCommandType, DtLgrCommandHandlerSP > DtDriverMap
Definition: lgrSystemDriver.h:262
Contains MAKLogger::DtScopedSequenceLock and MAKLogger::DtThreadSafe classes.
The factory for decoding text commands.
Definition: lgrRuntimeCommandFactory.h:67
std::shared_ptr< DtLgrCommandHandler > DtLgrCommandHandlerSP
Definition: lgrDriver.h:150
The definition of a command and it's parameters.
Definition: lgrRuntimeCommandFactory.h:40
Implements a protocol independent Simulation manager.
Definition: lgrSimManager.h:40
std::shared_ptr< DtCommandDispatcher > DtCommandDispatcherSP
Definition: lgrCommandDispatcher.h:101
Contains MAKLogger::DtLgrCommandType and MAKLogger::DtCommand classes.
DtLgrSystemCommandFactory Factory
Definition: lgrSystemDriver.h:46
a thread safe interface to a value.
Definition: threadSafe.h:101
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
A helper class for registering the necessary protocol specific information.
Definition: lgrProtocolRegistration.h:31
The message pipeline which takes messages from the input, passes them through the state and ultimatel...
Definition: messagePipeline.h:28
std::shared_ptr< const DtCommand > DtResponse
Definition: lgrCommand.h:175
DtLogger provides the core system structure and controls the execution model for the underlying objec...
Definition: logger.h:35
Contains MAKLogger::DtCommandDispatcher class.
Contains MAKLogger::DtLgrCommandHandler class.
std::set< DtLgrCommandHandlerSP > DtDriverList
Definition: lgrSystemDriver.h:263
short DtLgrCommandId
Definition: lgrCommand.h:25
std::map< DtLgrCommandId, CommandHandler > DtCommandMap
Definition: lgrSystemDriver.h:261
std::list< std::shared_ptr< DtLgrDynamicLibrary > > DtLibraryList
Definition: lgrSystemDriver.h:36
DtLgrSystemDrive defines the lowest level driver which controls the logger.
Definition: lgrSystemDriver.h:43
DtU32 NasmpFlags
Definition: lgrSystemDriver.h:251
Contains lgrCore library definitions.