9 #ifndef lgrLegacyUncheckpointedFormat_H_
10 #define lgrLegacyUncheckpointedFormat_H_
14 #include <vlutil/vlNetTypes.h>
15 #include <vlutil/vlTime.h>
58 virtual bool isEofValid()
const;
61 virtual bool hasLastPacket()
const;
65 virtual bool recoverLastPacket();
75 virtual bool atEndOfFile();
81 virtual bool seekToFirstPacket();
87 virtual bool seekToFirstPacket(
int type);
93 virtual bool seekToLastPacket();
99 virtual bool seekToLastPacket(
int type);
105 virtual bool seekToFirstPacketBeforeTime(
double time);
110 virtual bool seekToFirstPacketBeforeTime(
int type,
double time);
116 virtual bool seekToFirstPacketAfterTime(
double time);
122 virtual bool seekToFirstPacketAfterTime(
int type,
double time);
127 virtual bool seekToNextSerialPacket();
132 virtual bool seekToNextPacket();
138 virtual bool seekToNextPacket(
int type);
143 virtual bool seekToPreviousPacket();
149 virtual bool seekToPreviousPacketOfType(
int type);
157 virtual double currentPacketTime();
164 virtual bool validPacket(
double previousPacketTime = -1.0,
165 double* currentTime=0);
169 virtual int currentPacketType();
173 virtual size_t currentPacketSize();
177 virtual size_t currentPacketDataSize();
183 virtual bool hasCheckpoints()
const;
192 virtual void readMetaData();
216 double time,
bool inclusive =
true);
224 virtual void writePacket(
const DtPacket& packet);
230 virtual size_t writePacket(
const DtPacket& packet,
void* memory,
size_t memorySize,
231 int fileWriteBufferOffset = -1);
234 virtual void setDuration(
double duration);
237 virtual double duration()
const;
240 virtual void setStartEndTimes(
double start,
double end);
243 virtual void setDescription(DtString description);
246 virtual DtString description()
const;
251 virtual size_t headerSize()
const;
254 virtual size_t tailSize()
const;
257 virtual double firstPacketTime()
const;
260 virtual size_t firstPacketSize()
const;
263 virtual double lastPacketTime()
const;
266 virtual size_t lastPacketSize()
const;
285 virtual void fillHeader(
void* header,
const DtPacket& packet);
289 virtual bool writeHeader(
int fd,
const DtPacket& packet);
293 virtual bool readHeader();
296 virtual DtU32 headerNumBytes()
const;
299 virtual DtU32 headerNumBytes(
const void* header)
const;
302 virtual DtU32 headerFlags()
const;
305 virtual DtU32 headerFlags(
const void* header)
const;
308 virtual DtFloat64 headerArrivalTime()
const;
311 virtual DtFloat64 headerArrivalTime(
const void* header)
const;
314 virtual void fillTail(
void* tail,
const DtPacket& packet);
318 virtual bool writeTail(
int fd,
const DtPacket& packet);
322 virtual bool readTail();
325 virtual DtU32 tailNumBytes()
const;
328 virtual DtU32 tailNumBytes(
const void* tail)
const;
331 virtual void setFileEmpty();
337 virtual void setFirstPacket();
343 virtual void setLastPacket();
346 virtual size_t previousPacketSize();
362 virtual void validateTime(
double time);
366 virtual void initReadStartMetaData();
369 virtual void readStartMetaData();
373 virtual void initReadMiddleMetaData();
376 virtual void readMiddleMetaData();
380 virtual void initReadEndMetaData();
383 virtual void readEndMetaData();
386 virtual void writeStartMetaData();
389 virtual void writeMiddleMetaData();
392 virtual void writeEndMetaData();
405 virtual void validateType(
int type) = 0;
408 virtual int decodeTypeFromFlags(
unsigned int flags) = 0;
415 virtual void indexCheckpoint(
double time,
DtFilePosition position,
int size);