MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrEditorDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 
11 #ifndef lgrEditorDriver_H_
12 #define lgrEditorDriver_H_
13 
14 #include <lgrCore/lgrDriver.h>
15 #include <lgrCore/lgrExportType.h>
16 #include <lgrUtil/filePosition.h>
17 #include <map>
18 
19 class DtThread;
20 class DtRunnable;
21 
22 namespace MAKLogger
23 {
24  class DtLgrEditorCommandFactory;
25  class DtLgrEditorInterface;
26  class DtLgrEditorThread;
27  class DtLgrFileInput;
28  class DtLgrFileOutput;
29  class DtLgrPacketPrinter;
30  class DtLgrPacketPrinterOutput;
31  class DtLgrPlaybackDriver;
32  class DtLgrRecordDriver;
33  class DtMessageInput;
34  class DtMessageOutput;
35  class DtMessageState;
36  class DtLgrSystemDriver;
37 
41  {
42  public:
43 
46 
47  typedef std::map<DtString,DtLgrExportType> ExportTypeMap;
48 
50 
51  virtual ~DtLgrEditorDriver();
52 
54  virtual void tick();
55 
56  virtual bool releasePipeline();
57  virtual bool getPipeline();
58  virtual bool hasPipeline() const;
59 
61  virtual DtResponse addExportType(const DtCommand& command);
62 
64  virtual DtResponse exportFile(const DtCommand& command);
65 
67  virtual DtResponse exportSection(const DtCommand& command);
68 
70  virtual DtResponse clearSection(const DtCommand& command);
71 
73  virtual DtResponse cutSection( const DtCommand& command);
74 
76  virtual DtResponse mergeInFile( const DtCommand& command);
77 
79  virtual DtResponse appendFileToEnd( const DtCommand& command);
80 
82  virtual DtResponse prefixFileToStart( const DtCommand& command);
83 
85  virtual DtResponse trimStart( const DtCommand& command);
86 
88  virtual DtResponse offsetTime( const DtCommand& command);
89 
91  virtual DtResponse convertFile( const DtCommand& command);
92 
94  virtual DtResponse recheckpointOnExport( const DtCommand& command);
95 
97  const ExportTypeMap& exportTypes() const;
98 
99 
100  public:
101 
102  static const DtString& exportLoggerFileType();
103 
104  static const DtString& exportMultipleFileType();
105 
106  protected:
107 
109  virtual void finishEditOperation();
110 
112  void convertOperation();
113 
115  void exportOperation( const DtString& fileFormat,
116  const DtString& filename, const DtAbsoluteTime& startTime,
117  const DtAbsoluteTime& endTime, const DtRelativeTime& offset,
118  bool checkpoint, bool openAfterExport, bool silentSpawnThread);
119 
125  void mergeOperation( const DtString& filename,
126  const DtRelativeTime& offset);
127 
129  void offsetOperation(const DtRelativeTime& offset);
130 
133  void completeFileOperation( bool success,DtString outputName,
134  bool selectAll);
135 
138  virtual void exportToFile(const DtString& fileExportType, const DtString& filename,
139  DtAbsoluteTime startTime, DtAbsoluteTime endTime, DtRelativeTime offset,
140  bool checkpoint, bool openAfterExport, bool silentSpawnThread);
141 
144  void exportToMultipleFiles(const DtString& destination, DtAbsoluteTime startTime,
145  DtAbsoluteTime endTime, DtRelativeTime offset, bool checkpoint,
146  bool openAfterExport, bool silentSpawnThread);
147 
150  virtual void exportToPrinter(const DtString& exportType,
151  DtLgrPacketPrinter* printer, const DtString& destination,
152  DtAbsoluteTime startTime, DtAbsoluteTime endTime,
153  DtRelativeTime offset, bool generateData, bool silentSpawnThread);
154 
156  virtual void clearSectionOperation(const DtAbsoluteTime& start,
157  const DtAbsoluteTime& end);
158 
160  virtual void cutSectionOperation(const DtAbsoluteTime& start,
161  const DtAbsoluteTime& end);
162 
168  virtual bool preparePlaybackFileAndPrinter(DtLgrFileInput** fileInput,
169  DtLgrPacketPrinterOutput** printerOutput, DtLgrPacketPrinter* printer,
170  const DtString& destination);
171 
177  bool prepareRecordFileAndPrinter(DtLgrFileInput** fileInput,
178  DtLgrPacketPrinterOutput** printerOutput, DtLgrPacketPrinter* printer,
179  const DtString& printerDestination,DtFilePosition firstPacket,
180  DtFilePosition lastPacket);
181 
188  virtual bool preparePlaybackFileForEditing(DtLgrFileInput** fileInput,
189  DtLgrFileOutput** fileOutput);
190 
197  virtual bool prepareRecordFileForEditing( DtLgrFileInput** fileInput,
198  DtLgrFileOutput** fileOutput, const DtString& filename,
199  DtFilePosition firstPacekt,DtFilePosition lastPacket);
200 
202  virtual bool prepareFileForInput(const DtLgrFileInput* existingInput,
203  DtLgrFileInput** secondaryInput, const DtString& filename );
204 
209  virtual DtLgrPlaybackDriver* getPlaybackDriver(bool checkForFileOpen) const;
210 
213  virtual DtLgrRecordDriver* getRecordDriver() const;
214 
215 
216  protected:
217 
219  DtLgrSystemDriver& mySystemDriver;
220 
223 
225  PacketPrinterMap myExportPrinters;
226 
228  ExportTypeMap myExportTypes;
229 
232  int myPacketOperationCount;
233 
235  DtString myCurrentOperationName;
236 
239  bool myDeleteSecondaryInputFlag;
240 
242  bool myRecheckpointOnExport;
243 
244  protected:
247  static DtLgrExportType theExportLoggerFileType;
248 
251  static DtLgrExportType theExportMultipleFileType;
252 
253  };
254 
255 }
256 
257 #endif
The logger command which contains the command type and its parameters.
Definition: lgrCommand.h:110
DtLgrEditorInterface Interface
Definition: lgrEditorDriver.h:45
DtInt64 DtFilePosition
The position in a file, stored as a 64bit unsigned integer.
Definition: filePosition.h:18
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
The class which controls the logger editor functionality.
Definition: lgrEditorDriver.h:40
Contains MAKLogger::DtFilePosition typedef.
Relative Time, an elapsed duration of time, no implied measurement, could be seconds/cycles or ticks ...
Definition: absoluteTime.h:28
An abstract interface for message input from a file.
Definition: lgrFileInput.h:26
The class which interfaces with the logger editor functionality.
Definition: lgrEditorInterface.h:31
std::map< DtString, DtLgrPacketPrinter * > PacketPrinterMap
The type of map which stores the printers.
Definition: lgrEditorDriver.h:222
The class responsible for controlling the logger playback functionality.
Definition: lgrPlaybackDriver.h:36
Abstract interface for a packet printer class.
Definition: lgrPacketPrinter.h:25
The class responsible for controlling the logger recording functionality.
Definition: lgrRecordDriver.h:37
DtLgrEditorCommandFactory Factory
Definition: lgrEditorDriver.h:44
Contains MAKLogger::ExportType class.
std::map< DtString, DtLgrExportType > ExportTypeMap
Definition: lgrEditorDriver.h:47
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
The factory which creates logger editor commands.
Definition: lgrEditorCommandFactory.h:28
std::shared_ptr< const DtCommand > DtResponse
Definition: lgrCommand.h:175
Contains MAKLogger::DtLgrCommandHandler class.
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
A Class which stores the setting for a specific type of data export.
Definition: lgrExportType.h:19
Definition: lgrPacketPrinter.h:54
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)