10 #ifndef lgrRecordDriver_H_
11 #define lgrRecordDriver_H_
16 #include <vlutil/vlRunnable.h>
22 class DtCheckpointPolicy;
24 class DtLgrContinuousClock;
26 class DtLgrFileOutput;
27 class DtLgrPlaybackDriver;
28 class DtLgrRecordCommandFactory;
29 class DtLgrRecordInterface;
30 class DtMessagePipeline;
31 class DtThreadedObject;
32 class DtLgrRecordMediaStream;
50 virtual
bool releasePipeline();
51 virtual
bool getPipeline();
52 virtual
bool hasPipeline() const;
54 virtual
bool isFileOpen() const;
55 virtual
bool isFileEmpty() const;
57 virtual
bool isRecording() const;
58 virtual
bool isPaused() const;
61 virtual
bool pauseOnRecordAs() const;
64 virtual
int checkpointPolicyId() const;
67 virtual
int checkpointCount() const;
70 virtual
int checkpointSize() const;
76 bool interactionsCheckpointed() const;
80 virtual const DtString& filename() const;
89 virtual
bool recordToMultipleFiles() const;
92 virtual
double multipleFileDuration() const;
95 virtual const DtString& multipleFileNamingConvention() const;
101 virtual
void addTemporaryTrackedEntity(const DtString& name);
104 virtual const DtString& streamPipeline() const;
107 virtual const DtString& streamConfiguration() const;
109 const DtString& selectedMediaStreamConfigurations() const;
112 bool isRecordingMediaStream() const;
115 bool mediaRecordByDefault() const;
118 int mediaRecordPort() const;
121 virtual
void stopAllThreads();
135 virtual
void tickNormalRecording();
140 virtual
void tickRecordToMultipleFiles(
double multipleFileDuration,
bool final = false);
143 virtual
void configurePipeline();
146 virtual
void activateIdleListening();
148 virtual
bool doNewFile(DtString filename, DtString description,
bool overwrite);
149 virtual
bool doRecord(
bool multipleFiles);
150 virtual
bool doStop();
151 virtual
bool doPause();
152 virtual
bool doUnpause();
155 virtual DtString multipleFileName() const;
161 virtual DtString multiFileDescription(
bool final);
164 virtual
void initializeMediaPipeline(const DtString& filename);
168 virtual
void createMediaPipeline(const DtString& pipelineConfigurations,
169 const DtString tapeFilePath,
int port);
203 int packetOperationCount,
double fixedDuration,
DtRelativeTime offset);
The logger command which contains the command type and its parameters.
Definition: lgrCommand.h:109
DtAbsoluteTime myCurrentTime
Definition: lgrRecordDriver.h:236
double myLastMultipleFileEndTime
Definition: lgrRecordDriver.h:252
DtLgrFileOutput * myFileOutput
Definition: lgrRecordDriver.h:222
DtString myFilename
Definition: lgrRecordDriver.h:211
DtThreadedObject * myDumpThread
Definition: lgrRecordDriver.h:248
DtInt64 DtFilePosition
The position in a file, stored as a 64bit unsigned integer.
Definition: filePosition.h:18
DtLgrSystemDriver * myDriver
Definition: lgrRecordDriver.h:223
This class provides the base interface for DtLgrCommandHandler.
Definition: lgrDriver.h:35
The base class for command interface which allows an interface to send and receive commands...
Definition: lgrInterface.h:33
#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
int myMediaRecordPort
Definition: lgrRecordDriver.h:266
int myCheckpointPolicyId
Definition: lgrRecordDriver.h:228
DtString myDescription
Definition: lgrRecordDriver.h:221
Definition: lgrRecordDriver.h:198
Relative Time, an elapsed duration of time, no implied measurement, could be seconds/cycles or ticks ...
Definition: absoluteTime.h:28
DtCheckpointPolicy * myCheckpointPolicy
The checkpoint policy, by default checkpoint every 500 packets.
Definition: lgrRecordDriver.h:227
DtCommandInterface * myInterface
Definition: lgrRecordDriver.h:210
bool myMediaRecordByDefault
Definition: lgrRecordDriver.h:267
DtBoost::shared_ptr< const DtCommand > DtResponse
Definition: lgrCommand.h:174
DtLgrFileInput * myInputFile
Definition: lgrRecordDriver.h:213
DtAbsoluteTime myTimeToSaveMultipleFiles
Definition: lgrRecordDriver.h:254
DtAbsoluteTime myCheckpointPolicyTime
Definition: lgrRecordDriver.h:231
int myCheckpointPolicyCount
Definition: lgrRecordDriver.h:229
DtLgrRecordInterface Interface
Definition: lgrRecordDriver.h:41
DtString myStreamConfiguration
Definition: lgrRecordDriver.h:262
bool myPauseOnRecordAsFlag
Definition: lgrRecordDriver.h:240
Message buffer class responsible for storing a list of messages and iterating through that list...
Definition: messageBuffer.h:23
DtMessageBuffer * myCompleteState
Definition: lgrRecordDriver.h:257
DtLgrClock * myOriginalClock
Definition: lgrRecordDriver.h:235
int myStopCondition
Definition: lgrRecordDriver.h:242
bool mySavingRecordingData
Definition: lgrRecordDriver.h:247
DtRelativeTime myOffset
Definition: lgrRecordDriver.h:217
A Threaded object runs a DtRunnable object in a separate thread.
Definition: threaded.h:29
DtString myStreamPipeline
Definition: lgrRecordDriver.h:263
The factory responsible for creating recording commands.
Definition: lgrRecordCommandFactory.h:24
Checkpoint policy class responsible.
Definition: lgrCheckpointPolicy.h:28
DtMessageBuffer myPauseTimeSnapshot
A snapshot of the current state taken before pausing, diffed against upon unpause.
Definition: lgrRecordDriver.h:260
The class responsible for controlling the logger playback functionality.
Definition: lgrPlaybackDriver.h:36
bool myRecordingFlag
Definition: lgrRecordDriver.h:238
A clock which provides a continuous time via a time provider.
Definition: lgrClock.h:140
Contains MAKLogger::DtMessageBuffer class.
int myPacketOperationCount
Definition: lgrRecordDriver.h:246
bool myRecordToMultipleFiles
Definition: lgrRecordDriver.h:250
/brief Base class for defining command operations that run in a separate thread.
Definition: lgrCommandThread.h:26
Contains MAKLogger::DtAbsoluteTime and MAKLogger::DtRelativeTime classes.
The class responsible for controlling the logger recording functionality.
Definition: lgrRecordDriver.h:37
std::set< DtLgrRecordMediaStream * > myRecordStreams
Definition: lgrRecordDriver.h:264
DtLgrFileOutput * myOutput
Definition: lgrRecordDriver.h:214
double myMultipleFileDuration
Definition: lgrRecordDriver.h:251
DtLgrRecordCommandFactory Factory
Definition: lgrRecordDriver.h:40
bool myIsRecordingMediaStream
Definition: lgrRecordDriver.h:265
bool myPausedFlag
Definition: lgrRecordDriver.h:239
DtString myMultipleFileNamingConvention
Definition: lgrRecordDriver.h:253
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
DtLgrContinuousClock * myRecordingClock
Definition: lgrRecordDriver.h:234
DtRelativeTime myFixedDuration
Definition: lgrRecordDriver.h:216
int myPacketOperationCount
Definition: lgrRecordDriver.h:215
DtFilename myMediaFilename
Definition: lgrRecordDriver.h:268
int myCheckpointPolicySize
Definition: lgrRecordDriver.h:230
DtString myFileName
Definition: lgrRecordDriver.h:220
int myMultipleFileIndex
Definition: lgrRecordDriver.h:255
The message pipeline which takes messages from the input, passes them through the state and ultimatel...
Definition: messagePipeline.h:28
DtFilePosition myNextSavePosition
Definition: lgrRecordDriver.h:256
The class responsible for interfacing with the logger recording functionality.
Definition: lgrRecordInterface.h:28
Contains MAKLogger::DtLgrCommandHandler class.
A clock that provides current time via a time provider.
Definition: lgrClock.h:92
bool myCheckpointInteractions
Definition: lgrRecordDriver.h:232
DtMessagePipeline * myPipeline
Definition: lgrRecordDriver.h:224
DtRelativeTime myStopDuration
Definition: lgrRecordDriver.h:244
DtU64 myStopSize
Definition: lgrRecordDriver.h:245
bool myStopConditionClose
Definition: lgrRecordDriver.h:243
DtLgrSystemDrive defines the lowest level driver which controls the logger.
Definition: lgrSystemDriver.h:43
Class responsible for message Output to a file.
Definition: lgrFileOutput.h:25
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
bool myFileEmptyFlag
Definition: lgrRecordDriver.h:241
DtString myDescription
Definition: lgrRecordDriver.h:212