lgrEntityTrackingFormat.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00008 
00009 #ifndef lgrEntityTrackingFormat_H_
00010 #define lgrEntityTrackingFormat_H_
00011 
00012 #include "lgrLegacyCheckpointedFormat.h"
00013 #include <vlutil/vlNetTypes.h>
00014 
00015 namespace MAKLogger
00016 {
00017    class DtLgrEntityTracker;
00018 
00025    class DT_DLL_LGRCORE DtLgrEntityTrackingFormat : public DtLgrLegacyCheckpointedFormat
00026    {
00027    protected:
00028       DtLgrEntityTrackingFormat(DtLoggerFile*);
00029    public:
00030       virtual ~DtLgrEntityTrackingFormat();
00031 
00032    private:
00034       DtLgrEntityTrackingFormat(const DtLgrEntityTrackingFormat&);
00036       DtLgrEntityTrackingFormat& operator=(const DtLgrEntityTrackingFormat&);
00037    public:
00038 
00040       virtual void copyMetaData(const DtLgrFileFormatter* formatter);
00041 
00044       virtual void writePacket(const DtPacket& packet);
00045 
00052       virtual size_t writePacket(const DtPacket& packet,void* memory,size_t memorySize,
00053          int fileWriteBufferOffset = -1);
00054 
00056       virtual DtLgrEntityTracker* entityTracker() const = 0;
00057 
00059       virtual size_t headerSize() const;
00060 
00061    protected:
00062 
00064       virtual DtLgrEntityTracker* entityTracker() = 0;
00065 
00066       struct NetPacketHeader
00067       {
00068          DtNetU32 entityId;
00069          DtNetU32 numBytes;
00070          DtNetU32 flags;
00071          DtNetFloat64 arrivalTime;
00072       };
00073 
00074    protected:
00075 
00078       virtual double currentPacketTime();
00079 
00082       virtual int currentPacketType();
00083 
00086       virtual size_t currentPacketSize();
00087 
00090       virtual size_t currentPacketDataSize();
00091 
00093       virtual void fillHeader(void* header, const DtPacket& packet);
00094 
00096       virtual void writeHeader(int fd, const DtPacket& packet);
00097 
00099       virtual DtNetU32 headerEntityId(void* header);
00100 
00102       virtual DtNetU32 headerNumBytes(void* header);
00103 
00105       virtual DtNetU32 headerFlags(void* header);
00106 
00108       virtual DtNetFloat64 headerArrivalTime(void* header);
00109 
00111       virtual char* readPacketIntoBuffer(char* cur, char* end,
00112          DtMessageBuffer& messages, DtMemoryBufferSP& buffer);
00113 
00115       virtual void readConfigMetaData();
00116 
00118       virtual void writeConfigMetaData();
00119 
00121       virtual void readDateTimeMetaData();
00122 
00124       virtual void writeDateTimeMetaData();
00125 
00127       virtual void readEntityTableMetaData();
00128 
00130       virtual void writeEntityTableMetaData();
00131 
00132    protected:
00133       
00134       DtFilePosition myConfigDataPosition;
00135       DtFilePosition myDateTimeDataPosition;
00136       DtFilePosition myEntityTablePosition;
00137    };
00138 }
00139 
00140 #endif
00141 
00142 
00143 
00144 

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)