00001 00032 #ifndef LL_LLVLMANAGER_H 00033 #define LL_LLVLMANAGER_H 00034 00035 // This class manages the data coming in for viewer layers from the network. 00036 00037 #include "stdtypes.h" 00038 #include "lldarray.h" 00039 00040 class LLVLData; 00041 class LLViewerRegion; 00042 00043 class LLVLManager 00044 { 00045 public: 00046 ~LLVLManager(); 00047 00048 void addLayerData(LLVLData *vl_datap, const S32 mesg_size); 00049 00050 void unpackData(const S32 num_packets = 10); 00051 00052 S32 getTotalBytes() const; 00053 00054 S32 getLandBits() const; 00055 S32 getWindBits() const; 00056 S32 getCloudBits() const; 00057 00058 void resetBitCounts(); 00059 00060 void cleanupData(LLViewerRegion *regionp); 00061 protected: 00062 00063 LLDynamicArray<LLVLData *> mPacketData; 00064 U32 mLandBits; 00065 U32 mWindBits; 00066 U32 mCloudBits; 00067 }; 00068 00069 class LLVLData 00070 { 00071 public: 00072 LLVLData(LLViewerRegion *regionp, 00073 const S8 type, U8 *data, const S32 size); 00074 ~LLVLData(); 00075 00076 S8 mType; 00077 U8 *mData; 00078 S32 mSize; 00079 LLViewerRegion *mRegionp; 00080 }; 00081 00082 extern LLVLManager gVLManager; 00083 00084 #endif // LL_LLVIEWERLAYERMANAGER_H