#ifndef VEGA_VFramesBuffer #define VEGA_VFramesBuffer //*-- Author : Damir Buskulic 20/05/99 #include "FrameL.h" #include "VMetaData.h" #include "VFrameChannel.h" #include "VConditionSet.h" ////////////////////////////////////////////////////////////////////////// // // // VFramesBuffer // // // // Buffer of frames used as a cache when reading frames // // // ////////////////////////////////////////////////////////////////////////// class VFrameChannel; class VFramesBuffer { private : Int_t mBufSize; // Size of the buffer FrameH** mFramesBuf; // Array of memory cached frames VMetaData* mMetaData; // Meta data of cached frames Int_t* mIsComplete; // If a frame is loaded by part, it is incomplete Int_t mBufCur; // Current position of the buffer index (newest frame) VFrameChannel* mFrameChannel; // Database using this buffer virtual void PutInBuffer(FrameH* frame, VMetaData* meta); virtual void Rearrange(Int_t ibuf); public : VFramesBuffer(VFrameChannel* vfrdb); virtual ~VFramesBuffer(); virtual FrameH* GetFrameCopy(VMetaData* meta); virtual FrameH* GetFrame(VMetaData* meta); virtual FrVect* GetVectCopy(VMetaData* meta, char* vectname); virtual FrVect* GetVect(VMetaData* meta, char* vectname); ClassDef(VFramesBuffer,0) // Frame buffer used as cache for reading }; #endif