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 setDescription(
DtString description);
243 virtual DtString description()
const;
248 virtual size_t headerSize()
const;
251 virtual size_t tailSize()
const;
254 virtual double firstPacketTime()
const;
257 virtual size_t firstPacketSize()
const;
260 virtual double lastPacketTime()
const;
263 virtual size_t lastPacketSize()
const;
288 virtual size_t readPreviousPacketSize();
291 virtual void fillHeader(
void* header,
const DtPacket& packet);
294 virtual void writeHeader(
int fd,
const DtPacket& packet);
297 virtual DtNetU32 headerNumBytes(
void* header);
300 virtual DtNetU32 headerFlags(
void* header);
303 virtual DtNetFloat64 headerArrivalTime(
void* header);
306 virtual void setFileEmpty();
309 virtual void setFirstPacket();
312 virtual void setLastPacket();
325 virtual void validateTime(
double time);
329 virtual void initReadStartMetaData();
332 virtual void readStartMetaData();
336 virtual void initReadMiddleMetaData();
339 virtual void readMiddleMetaData();
343 virtual void initReadEndMetaData();
346 virtual void readEndMetaData();
349 virtual void writeStartMetaData();
352 virtual void writeMiddleMetaData();
355 virtual void writeEndMetaData();
368 virtual void validateType(
int type) = 0;
371 virtual int decodeTypeFromFlags(
unsigned int flags) = 0;