00001 00032 #ifndef LL_LLVOCACHE_H 00033 #define LL_LLVOCACHE_H 00034 00035 #include "lluuid.h" 00036 #include "lldatapacker.h" 00037 #include "lldlinked.h" 00038 00039 00040 //--------------------------------------------------------------------------- 00041 // Cache entries 00042 class LLVOCacheEntry; 00043 00044 class LLVOCacheEntry : public LLDLinked<LLVOCacheEntry> 00045 { 00046 public: 00047 LLVOCacheEntry(U32 local_id, U32 crc, LLDataPackerBinaryBuffer &dp); 00048 LLVOCacheEntry(FILE *fp); 00049 LLVOCacheEntry(); 00050 ~LLVOCacheEntry(); 00051 00052 U32 getLocalID() const { return mLocalID; } 00053 U32 getCRC() const { return mCRC; } 00054 S32 getHitCount() const { return mHitCount; } 00055 S32 getCRCChangeCount() const { return mCRCChangeCount; } 00056 00057 void dump() const; 00058 void writeToFile(FILE *fp) const; 00059 void assignCRC(U32 crc, LLDataPackerBinaryBuffer &dp); 00060 LLDataPackerBinaryBuffer *getDP(U32 crc); 00061 void recordHit(); 00062 void recordDupe() { mDupeCount++; } 00063 00064 protected: 00065 U32 mLocalID; 00066 U32 mCRC; 00067 S32 mHitCount; 00068 S32 mDupeCount; 00069 S32 mCRCChangeCount; 00070 LLDataPackerBinaryBuffer mDP; 00071 U8 *mBuffer; 00072 }; 00073 00074 #endif