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 
68  virtual bool atEndOfFile();
69 
74  virtual bool seekToFirstPacket();
75 
80  virtual bool seekToFirstPacket(int type);
81 
86  virtual bool seekToLastPacket();
87 
92  virtual bool seekToLastPacket(int type);
93 
98  virtual bool seekToFirstPacketBeforeTime(double time);
99 
103  virtual bool seekToFirstPacketBeforeTime(int type,double time);
104 
109  virtual bool seekToFirstPacketAfterTime(double time);
110 
115  virtual bool seekToFirstPacketAfterTime(int type,double time);
116 
120  virtual bool seekToNextPacket();
121 
126  virtual bool seekToNextPacket(int type);
127 
131  virtual bool seekToPreviousPacket();
132 
137  virtual bool seekToPreviousPacket(int type);
138 
141  virtual void seekToPosition(DtFilePosition);
142 
145  virtual double currentPacketTime();
146 
149  virtual int currentPacketType();
150 
153  virtual size_t currentPacketSize();
154 
157  virtual size_t currentPacketDataSize();
158 
160  virtual DtFilePosition currentPosition();
161 
163  virtual bool hasCheckpoints() const;
164 
166  virtual void readMetaData(DtLoggerFileMetaData::DataPosition position);
167 
172  virtual void readMetaData();
173 
175  virtual void writeMetaData(DtLoggerFileMetaData::DataPosition position);
176 
178  virtual char* readPacketIntoBuffer(char* cur, char* end, DtMessageBuffer& messages, DtMemoryBufferSP& buffer);
179 
183  virtual void readPacketsUptoCount(DtMessageBuffer&,DtMemoryBufferSP,int packetCount);
184 
187  virtual void readPacketsUptoSize(DtMessageBuffer&,DtMemoryBufferSP);
188 
195  virtual double readPacketsUpToTime(DtMessageBuffer&,DtMemoryBufferSP,
196  double time,bool inclusive = true);
197 
200  virtual void writePackets(const DtMessageBuffer&);
201 
204  virtual void writePacket(const DtPacket& packet);
205 
210  virtual size_t writePacket(const DtPacket& packet,void* memory,size_t memorySize,
211  int fileWriteBufferOffset = -1);
212 
214  virtual void setDuration(double duration);
215 
217  virtual double duration() const;
218 
220 
222  virtual size_t headerSize() const;
223 
225  virtual size_t tailSize() const;
226 
227  protected:
228 
230  {
231  DtNetU32 numBytes;
232  DtNetU32 flags;
233  DtNetFloat64 arrivalTime;
234  };
235 
237  {
238  DtNetU32 numBytes;
239  };
240 
242  virtual DtFilePosition firstPacketPosition() const;
243 
245  virtual DtFilePosition lastPacketPosition() const;
246 
248  virtual double firstPacketTime() const;
249 
251  virtual double lastPacketTime() const;
252 
254  virtual size_t firstPacketSize() const;
255 
257  virtual size_t lastPacketSize() const;
258 
260  virtual size_t readPreviousPacketSize();
261 
263  virtual void fillHeader(void* header, const DtPacket& packet);
264 
266  virtual void writeHeader(int fd, const DtPacket& packet);
267 
269  virtual DtNetU32 headerNumBytes(void* header);
270 
272  virtual DtNetU32 headerFlags(void* header);
273 
275  virtual DtNetFloat64 headerArrivalTime(void* header);
276 
278  virtual void setFileEmpty();
279 
281  virtual void setFirstPacket();
282 
284  virtual void setLastPacket();
285 
287  virtual void findFirstSerialPacket(DtFilePosition firstPacket);
288 
290  virtual void findLastSerialPacket(DtFilePosition lastPacket);
291 
293  virtual DtPacket* readPacket();
294 
297  virtual void validateTime(double time);
298 
301  virtual void initReadStartMetaData();
302 
304  virtual void readStartMetaData();
305 
308  virtual void initReadMiddleMetaData();
309 
311  virtual void readMiddleMetaData();
312 
315  virtual void initReadEndMetaData();
316 
318  virtual void readEndMetaData();
319 
321  virtual void writeStartMetaData();
322 
324  virtual void writeMiddleMetaData();
325 
327  virtual void writeEndMetaData();
328 
332  int fd();
333 
336 
337 
340  virtual void validateType(int type) = 0;
341 
343  virtual int decodeTypeFromFlags(unsigned int flags) = 0;
344 
346 
347 
348  protected:
349 
350  // When reading a start metadata packet (from start of file forward),
351  // save the position of next packet (i.e., the end of start)
353  // When reading an end metadata packet (from eof back),
354  // save the position of the packet being read (i.e., the start of end)
365 
367  };
368 }
369 
370 #endif

Document ID: Generated on Thu Apr 11 12:13:00 EDT 2013 from SVN revision 126011
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)