MAK Data Logger API Documentation for DIS
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 "filePosition.h"
14 #include <vlutil/vlNetTypes.h>
15 #include <vlutil/vlTime.h>
16 
17 #include "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 setDescription(DtString description);
241 
243  virtual DtString description() const;
244 
246 
248  virtual size_t headerSize() const;
249 
251  virtual size_t tailSize() const;
252 
254  virtual double firstPacketTime() const;
255 
257  virtual size_t firstPacketSize() const;
258 
260  virtual double lastPacketTime() const;
261 
263  virtual size_t lastPacketSize() const;
264 
266 
267  protected:
268 
270  {
271  DtNetU32 numBytes;
272  DtNetU32 flags;
273  DtNetFloat64 arrivalTime;
274  };
275 
277  {
278  DtNetU32 numBytes;
279  };
280 
282  virtual DtFilePosition firstPacketPosition() const;
283 
285  virtual DtFilePosition lastPacketPosition() const;
286 
288  virtual size_t readPreviousPacketSize();
289 
291  virtual void fillHeader(void* header, const DtPacket& packet);
292 
294  virtual void writeHeader(int fd, const DtPacket& packet);
295 
297  virtual DtNetU32 headerNumBytes(void* header);
298 
300  virtual DtNetU32 headerFlags(void* header);
301 
303  virtual DtNetFloat64 headerArrivalTime(void* header);
304 
306  virtual void setFileEmpty();
307 
309  virtual void setFirstPacket();
310 
312  virtual void setLastPacket();
313 
315  virtual void findFirstSerialPacket(DtFilePosition firstPacket);
316 
318  virtual void findLastSerialPacket(DtFilePosition lastPacket);
319 
321  virtual DtPacket* readPacket();
322 
325  virtual void validateTime(double time);
326 
329  virtual void initReadStartMetaData();
330 
332  virtual void readStartMetaData();
333 
336  virtual void initReadMiddleMetaData();
337 
339  virtual void readMiddleMetaData();
340 
343  virtual void initReadEndMetaData();
344 
346  virtual void readEndMetaData();
347 
349  virtual void writeStartMetaData();
350 
352  virtual void writeMiddleMetaData();
353 
355  virtual void writeEndMetaData();
356 
360  int fd();
361 
364 
365 
368  virtual void validateType(int type) = 0;
369 
371  virtual int decodeTypeFromFlags(unsigned int flags) = 0;
372 
374 
375 
376  protected:
377 
378  // When reading a start metadata packet (from start of file forward),
379  // save the position of next packet (i.e., the end of start)
381  // When reading an end metadata packet (from eof back),
382  // save the position of the packet being read (i.e., the start of end)
393 
395  };
396 }
397 
398 #endif

Document ID: Generated on Thu Apr 10 18:53:01 EDT 2014 from SVN revision 138105
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)