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 seekToPreviousPacket(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 
242  virtual size_t headerSize() const;
243 
245  virtual size_t tailSize() const;
246 
247  protected:
248 
250  {
251  DtNetU32 numBytes;
252  DtNetU32 flags;
253  DtNetFloat64 arrivalTime;
254  };
255 
257  {
258  DtNetU32 numBytes;
259  };
260 
262  virtual DtFilePosition firstPacketPosition() const;
263 
265  virtual DtFilePosition lastPacketPosition() const;
266 
268  virtual double firstPacketTime() const;
269 
271  virtual double lastPacketTime() const;
272 
274  virtual size_t firstPacketSize() const;
275 
277  virtual size_t lastPacketSize() const;
278 
280  virtual size_t readPreviousPacketSize();
281 
283  virtual void fillHeader(void* header, const DtPacket& packet);
284 
286  virtual void writeHeader(int fd, const DtPacket& packet);
287 
289  virtual DtNetU32 headerNumBytes(void* header);
290 
292  virtual DtNetU32 headerFlags(void* header);
293 
295  virtual DtNetFloat64 headerArrivalTime(void* header);
296 
298  virtual void setFileEmpty();
299 
301  virtual void setFirstPacket();
302 
304  virtual void setLastPacket();
305 
307  virtual void findFirstSerialPacket(DtFilePosition firstPacket);
308 
310  virtual void findLastSerialPacket(DtFilePosition lastPacket);
311 
313  virtual DtPacket* readPacket();
314 
317  virtual void validateTime(double time);
318 
321  virtual void initReadStartMetaData();
322 
324  virtual void readStartMetaData();
325 
328  virtual void initReadMiddleMetaData();
329 
331  virtual void readMiddleMetaData();
332 
335  virtual void initReadEndMetaData();
336 
338  virtual void readEndMetaData();
339 
341  virtual void writeStartMetaData();
342 
344  virtual void writeMiddleMetaData();
345 
347  virtual void writeEndMetaData();
348 
352  int fd();
353 
356 
357 
360  virtual void validateType(int type) = 0;
361 
363  virtual int decodeTypeFromFlags(unsigned int flags) = 0;
364 
366 
367 
368  protected:
369 
370  // When reading a start metadata packet (from start of file forward),
371  // save the position of next packet (i.e., the end of start)
373  // When reading an end metadata packet (from eof back),
374  // save the position of the packet being read (i.e., the start of end)
385 
387  };
388 }
389 
390 #endif

Document ID: Generated on Sun Dec 15 18:04:30 EST 2013 from SVN revision 134418
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)