MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrLegacyUncheckpointedFormat.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef lgrLegacyUncheckpointedFormat_H_
10 #define lgrLegacyUncheckpointedFormat_H_
11 
12 #include "lgrFileFormatter.h"
13 #include <lgrUtil/filePosition.h>
14 #include <vlutil/vlNetTypes.h>
15 #include <vlutil/vlTime.h>
16 
17 #include <lgrUtil/memoryBuffer.h>
18 
19 namespace MAKLogger
20 {
21  class DtPacket;
22 
27  {
28 
29  protected:
32 
33  private:
38  public:
39 
49  virtual void initializeSerialMode(DtFilePosition firstPacket = 0,
50  DtFilePosition lastPacket = 0, bool skipCheckpointRead=false);
51 
53  virtual void copyMetaData(const DtLgrFileFormatter* formatter);
54 
56 
57 
59  virtual bool isEofValid() const;
60 
62  virtual bool hasLastPacket() const;
63 
66  virtual bool recoverLastPacket();
67 
76  virtual bool atEndOfFile();
77 
82  virtual bool seekToFirstPacket();
83 
88  virtual bool seekToFirstPacket(int type);
89 
94  virtual bool seekToLastPacket();
95 
100  virtual bool seekToLastPacket(int type);
101 
106  virtual bool seekToFirstPacketBeforeTime(double time);
107 
111  virtual bool seekToFirstPacketBeforeTime(int type,double time);
112 
117  virtual bool seekToFirstPacketAfterTime(double time);
118 
123  virtual bool seekToFirstPacketAfterTime(int type,double time);
124 
128  virtual bool seekToNextSerialPacket();
129 
133  virtual bool seekToNextPacket();
134 
139  virtual bool seekToNextPacket(int type);
140 
144  virtual bool seekToPreviousPacket();
145 
150  virtual bool seekToPreviousPacketOfType(int type);
151 
154  virtual void seekToPosition(DtFilePosition);
155 
158  virtual double currentPacketTime();
159 
165  virtual bool validPacket(double previousPacketTime = -1.0,
166  double* currentTime=0);
167 
170  virtual int currentPacketType();
171 
174  virtual size_t currentPacketSize();
175 
178  virtual size_t currentPacketDataSize();
179 
181  virtual DtFilePosition currentPosition();
182 
184  virtual bool hasCheckpoints() const;
185 
187  virtual void readMetaData(DtLoggerFileMetaData::DataPosition position);
188 
193  virtual void readMetaData();
194 
196  virtual void writeMetaData(DtLoggerFileMetaData::DataPosition position);
197 
199  virtual char* readPacketIntoBuffer(char* cur, char* end, DtMessageBuffer& messages, DtMemoryBufferSP& buffer);
200 
204  virtual void readPacketsUptoCount(DtMessageBuffer&,DtMemoryBufferSP,int packetCount);
205 
208  virtual void readPacketsUptoSize(DtMessageBuffer&,DtMemoryBufferSP);
209 
216  virtual double readPacketsUpToTime(DtMessageBuffer&,DtMemoryBufferSP,
217  double time,bool inclusive = true);
218 
221  virtual void writePackets(const DtMessageBuffer&);
222 
225  virtual void writePacket(const DtPacket& packet);
226 
231  virtual size_t writePacket(const DtPacket& packet,void* memory,size_t memorySize,
232  int fileWriteBufferOffset = -1);
233 
235  virtual void setDuration(double duration);
236 
238  virtual double duration() const;
239 
241  virtual void setStartEndTimes(double start, double end);
242 
244  virtual void setDescription(DtString description);
245 
247  virtual DtString description() const;
248 
250 
252  virtual size_t headerSize() const;
253 
255  virtual size_t tailSize() const;
256 
258  virtual double firstPacketTime() const;
259 
261  virtual size_t firstPacketSize() const;
262 
264  virtual double lastPacketTime() const;
265 
267  virtual size_t lastPacketSize() const;
268 
270 
271  protected:
272 
274  {
275  DtNetU32 numBytes;
276  DtNetU32 flags;
277  DtNetFloat64 arrivalTime;
278  };
279 
281  {
282  DtNetU32 numBytes;
283  };
284 
286  virtual void fillHeader(void* header, const DtPacket& packet);
287 
290  virtual bool writeHeader(int fd, const DtPacket& packet);
291 
294  virtual bool readHeader();
295 
297  virtual DtU32 headerNumBytes() const;
298 
300  virtual DtU32 headerNumBytes(const void* header) const;
301 
303  virtual DtU32 headerFlags() const;
304 
306  virtual DtU32 headerFlags(const void* header) const;
307 
309  virtual DtFloat64 headerArrivalTime() const;
310 
312  virtual DtFloat64 headerArrivalTime(const void* header) const;
313 
315  virtual void fillTail(void* tail, const DtPacket& packet);
316 
319  virtual bool writeTail(int fd, const DtPacket& packet);
320 
323  virtual bool readTail();
324 
326  virtual DtU32 tailNumBytes() const;
327 
329  virtual DtU32 tailNumBytes(const void* tail) const;
330 
332  virtual void setFileEmpty();
333 
335  virtual DtFilePosition firstPacketPosition() const;
336 
338  virtual void setFirstPacket();
339 
341  virtual DtFilePosition lastPacketPosition() const;
342 
344  virtual void setLastPacket();
345 
347  virtual size_t previousPacketSize();
348 
350  virtual void findFirstSerialPacket(DtFilePosition firstPacket);
351 
353  virtual void findLastSerialPacket(DtFilePosition lastPacket);
354 
356  virtual DtPacket* readPacket();
357 
359  virtual DtPacket* createPacket(void* header, DtSmartBuffer& buffer);
360 
363  virtual void validateTime(double time);
364 
367  virtual void initReadStartMetaData();
368 
370  virtual void readStartMetaData();
371 
374  virtual void initReadMiddleMetaData();
375 
377  virtual void readMiddleMetaData();
378 
381  virtual void initReadEndMetaData();
382 
384  virtual void readEndMetaData();
385 
387  virtual void writeStartMetaData();
388 
390  virtual void writeMiddleMetaData();
391 
393  virtual void writeEndMetaData();
394 
398  int fd();
399 
402 
403 
406  virtual void validateType(int type) = 0;
407 
409  virtual int decodeTypeFromFlags(unsigned int flags) = 0;
410 
412 
416  virtual void indexCheckpoint(double time, DtFilePosition position, int size);
417 
418  protected:
419 
420  // When reading a start metadata packet (from start of file forward),
421  // save the position of next packet (i.e., the end of start)
423  // When reading an end metadata packet (from eof back),
424  // save the position of the packet being read (i.e., the start of end)
437 
439  };
440 }
441 
442 #endif
NetPacketTail myTail
Definition: lgrLegacyUncheckpointedFormat.h:436
DtFilePosition myLastPacketPosition
Definition: lgrLegacyUncheckpointedFormat.h:427
DtInt64 DtFilePosition
The position in a file, stored as a 64bit unsigned integer.
Definition: filePosition.h:18
double myLastPacketTime
Definition: lgrLegacyUncheckpointedFormat.h:429
double myFirstPacketTime
Definition: lgrLegacyUncheckpointedFormat.h:428
NetPacketHeader myHeader
Definition: lgrLegacyUncheckpointedFormat.h:435
Contains MAKLogger::DtFilePosition typedef.
DataPosition
Definition: loggerFileMetaData.h:27
std::shared_ptr< DtMemoryBuffer > DtMemoryBufferSP
Definition: memoryBuffer.h:19
Message buffer class responsible for storing a list of messages and iterating through that list...
Definition: messageBuffer.h:23
DtNetU32 numBytes
Definition: lgrLegacyUncheckpointedFormat.h:282
The class which implements the legacy (Logger 3.x) uncheckpointed file format.
Definition: lgrLegacyUncheckpointedFormat.h:26
An abstract logger file formatter.
Definition: lgrFileFormatter.h:33
DtFilePosition myEndOfStartMetadata
Definition: lgrLegacyUncheckpointedFormat.h:422
size_t myLastPacketSize
Definition: lgrLegacyUncheckpointedFormat.h:431
Definition: lgrLegacyUncheckpointedFormat.h:273
double myPreviousArrivalTime
Definition: lgrLegacyUncheckpointedFormat.h:433
DtNetFloat64 arrivalTime
Definition: lgrLegacyUncheckpointedFormat.h:277
DtNetU32 flags
Definition: lgrLegacyUncheckpointedFormat.h:276
DtNetU32 numBytes
Definition: lgrLegacyUncheckpointedFormat.h:275
A generic packed of typed binary data.
Definition: packet.h:41
int myPreviousType
Definition: lgrLegacyUncheckpointedFormat.h:434
A smart buffer has a shared pointer to the memory buffer and an offset and size of a &#39;smart&#39; sub buff...
Definition: smartBuffer.h:21
DtFilePosition myFirstPacketPosition
Definition: lgrLegacyUncheckpointedFormat.h:426
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
bool myIsEmptyFlag
Definition: lgrLegacyUncheckpointedFormat.h:432
Contains MAKLogger::DtMemoryBuffer class.
Definition: lgrLegacyUncheckpointedFormat.h:280
size_t myFirstPacketSize
Definition: lgrLegacyUncheckpointedFormat.h:430
Contains MAKLogger::DtLgrFileFormatter class.
DtClock myProfilingClock
Definition: lgrLegacyUncheckpointedFormat.h:438
DtFilePosition myStartOfEndMetadata
Definition: lgrLegacyUncheckpointedFormat.h:425
Base logger class which represents the basic Logger file.
Definition: loggerFile.h:25

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)