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-2010 VT MAK
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 
48  virtual void initializeSerialMode(DtFilePosition firstPacket = 0,
49  DtFilePosition lastPacket = 0);
50 
52  virtual void copyMetaData(const DtLgrFileFormatter* formatter);
53 
55 
56 
58  virtual bool isEofValid() const;
59 
61  virtual bool hasLastPacket() const;
62 
65  virtual bool recoverLastPacket();
66 
75  virtual bool atEndOfFile();
76 
81  virtual bool seekToFirstPacket();
82 
87  virtual bool seekToFirstPacket(int type);
88 
93  virtual bool seekToLastPacket();
94 
99  virtual bool seekToLastPacket(int type);
100 
105  virtual bool seekToFirstPacketBeforeTime(double time);
106 
110  virtual bool seekToFirstPacketBeforeTime(int type,double time);
111 
116  virtual bool seekToFirstPacketAfterTime(double time);
117 
122  virtual bool seekToFirstPacketAfterTime(int type,double time);
123 
127  virtual bool seekToNextSerialPacket();
128 
132  virtual bool seekToNextPacket();
133 
138  virtual bool seekToNextPacket(int type);
139 
143  virtual bool seekToPreviousPacket();
144 
149  virtual bool seekToPreviousPacketOfType(int type);
150 
153  virtual void seekToPosition(DtFilePosition);
154 
157  virtual double currentPacketTime();
158 
164  virtual bool validPacket(double previousPacketTime = -1.0,
165  double* currentTime=0);
166 
169  virtual int currentPacketType();
170 
173  virtual size_t currentPacketSize();
174 
177  virtual size_t currentPacketDataSize();
178 
180  virtual DtFilePosition currentPosition();
181 
183  virtual bool hasCheckpoints() const;
184 
186  virtual void readMetaData(DtLoggerFileMetaData::DataPosition position);
187 
192  virtual void readMetaData();
193 
195  virtual void writeMetaData(DtLoggerFileMetaData::DataPosition position);
196 
198  virtual char* readPacketIntoBuffer(char* cur, char* end, DtMessageBuffer& messages, DtMemoryBufferSP& buffer);
199 
203  virtual void readPacketsUptoCount(DtMessageBuffer&,DtMemoryBufferSP,int packetCount);
204 
207  virtual void readPacketsUptoSize(DtMessageBuffer&,DtMemoryBufferSP);
208 
215  virtual double readPacketsUpToTime(DtMessageBuffer&,DtMemoryBufferSP,
216  double time,bool inclusive = true);
217 
220  virtual void writePackets(const DtMessageBuffer&);
221 
224  virtual void writePacket(const DtPacket& packet);
225 
230  virtual size_t writePacket(const DtPacket& packet,void* memory,size_t memorySize,
231  int fileWriteBufferOffset = -1);
232 
234  virtual void setDuration(double duration);
235 
237  virtual double duration() const;
238 
240  virtual void setStartEndTimes(double start, double end);
241 
243  virtual void setDescription(DtString description);
244 
246  virtual DtString description() const;
247 
249 
251  virtual size_t headerSize() const;
252 
254  virtual size_t tailSize() const;
255 
257  virtual double firstPacketTime() const;
258 
260  virtual size_t firstPacketSize() const;
261 
263  virtual double lastPacketTime() const;
264 
266  virtual size_t lastPacketSize() const;
267 
269 
270  protected:
271 
273  {
274  DtNetU32 numBytes;
275  DtNetU32 flags;
276  DtNetFloat64 arrivalTime;
277  };
278 
280  {
281  DtNetU32 numBytes;
282  };
283 
285  virtual void fillHeader(void* header, const DtPacket& packet);
286 
289  virtual bool writeHeader(int fd, const DtPacket& packet);
290 
293  virtual bool readHeader();
294 
296  virtual DtU32 headerNumBytes() const;
297 
299  virtual DtU32 headerNumBytes(const void* header) const;
300 
302  virtual DtU32 headerFlags() const;
303 
305  virtual DtU32 headerFlags(const void* header) const;
306 
308  virtual DtFloat64 headerArrivalTime() const;
309 
311  virtual DtFloat64 headerArrivalTime(const void* header) const;
312 
314  virtual void fillTail(void* tail, const DtPacket& packet);
315 
318  virtual bool writeTail(int fd, const DtPacket& packet);
319 
322  virtual bool readTail();
323 
325  virtual DtU32 tailNumBytes() const;
326 
328  virtual DtU32 tailNumBytes(const void* tail) const;
329 
331  virtual void setFileEmpty();
332 
334  virtual DtFilePosition firstPacketPosition() const;
335 
337  virtual void setFirstPacket();
338 
340  virtual DtFilePosition lastPacketPosition() const;
341 
343  virtual void setLastPacket();
344 
346  virtual size_t previousPacketSize();
347 
349  virtual void findFirstSerialPacket(DtFilePosition firstPacket);
350 
352  virtual void findLastSerialPacket(DtFilePosition lastPacket);
353 
355  virtual DtPacket* readPacket();
356 
358  virtual DtPacket* createPacket(void* header, DtSmartBuffer& buffer);
359 
362  virtual void validateTime(double time);
363 
366  virtual void initReadStartMetaData();
367 
369  virtual void readStartMetaData();
370 
373  virtual void initReadMiddleMetaData();
374 
376  virtual void readMiddleMetaData();
377 
380  virtual void initReadEndMetaData();
381 
383  virtual void readEndMetaData();
384 
386  virtual void writeStartMetaData();
387 
389  virtual void writeMiddleMetaData();
390 
392  virtual void writeEndMetaData();
393 
397  int fd();
398 
401 
402 
405  virtual void validateType(int type) = 0;
406 
408  virtual int decodeTypeFromFlags(unsigned int flags) = 0;
409 
411 
415  virtual void indexCheckpoint(double time, DtFilePosition position, int size);
416 
417  protected:
418 
419  // When reading a start metadata packet (from start of file forward),
420  // save the position of next packet (i.e., the end of start)
422  // When reading an end metadata packet (from eof back),
423  // save the position of the packet being read (i.e., the start of end)
436 
438  };
439 }
440 
441 #endif

Document ID: Generated on Thu Apr 7 20:50:59 EDT 2016 from SVN revision 163818
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)