15 : theTileBoundaryRect(),
17 theBoundaryWidthHeight(),
18 theTilesHorizontal(0),
46 std::lock_guard<std::mutex> lock(
theMutex);
62 std::lock_guard<std::mutex> lock(
theMutex);
77 std::lock_guard<std::mutex> lock(
theMutex);
78 std::map<ossim_int32, ossimFixedTileCacheInfo>::iterator tileIter =
theTileMap.begin();
82 ossimIrect tileRect = (*tileIter).second.theTile->getImageRectangle();
86 theCacheSize -= (*tileIter).second.theTile->getDataSizeInBytes();
87 (*tileIter).second.theTile = NULL;
97 std::lock_guard<std::mutex> lock(
theMutex);
99 if(!imageData.
valid())
114 std::map<ossim_int32, ossimFixedTileCacheInfo>::iterator tileIter =
142 std::lock_guard<std::mutex> lock(
theMutex);
145 std::map<ossim_int32, ossimFixedTileCacheInfo>::iterator tileIter =
149 result = (*tileIter).second.theTile;
158 std::lock_guard<std::mutex> lock(
theMutex);
198 std::map<ossim_int32, ossimFixedTileCacheInfo>::iterator tileIter =
203 if((*tileIter).second.theTile.valid())
205 theCacheSize -= (*tileIter).second.theTile->getDataSizeInBytes();
206 (*tileIter).second.theTile = NULL;
215 std::lock_guard<std::mutex> lock(
theMutex);
218 std::map<ossim_int32, ossimFixedTileCacheInfo>::iterator tileIter =
223 theCacheSize -= (*tileIter).second.theTile->getDataSizeInBytes();
224 if((*tileIter).second.theTile.valid())
226 result = (*tileIter).second.theTile;
237 std::lock_guard<std::mutex> lock(
theMutex);
238 std::map<ossim_int32, ossimFixedTileCacheInfo>::iterator tileIter =
243 if( (*tileIter).second.theTile.valid())
245 (*tileIter).second.theTile = 0;
256 std::lock_guard<std::mutex> lock(
theMutex);
268 std::lock_guard<std::mutex> lock(
theMutex);
virtual ossimRefPtr< ossimImageData > getTile(ossim_int32 id)
ossimIrect theTileBoundaryRect
virtual void setTileSize(const ossimIpt &tileSize)
ossim_uint32 theCacheSize
virtual void eraseFromLru(ossim_int32 id)
std::map< ossim_int32, ossimFixedTileCacheInfo > theTileMap
ossim_uint32 height() const
OSSIM_DLL void defaultTileSize(ossimIpt &tileSize)
const ossimIpt & ul() const
virtual ossimRefPtr< ossimImageData > removeTile()
bool intersects(const ossimIrect &rect) const
void keepTilesWithinRect(const ossimIrect &rect)
virtual ossimObject * dup() const
ossim_uint32 theTilesVertical
virtual ossimIpt getTileOrigin(ossim_int32 tileId)
ossimIpt theBoundaryWidthHeight
virtual void setRect(const ossimIrect &rect)
virtual void deleteTile()
unsigned int ossim_uint32
ossim_uint32 width() const
ossim_uint32 theTilesHorizontal
virtual ossim_int32 computeId(const ossimIpt &tileOrigin) const
virtual const void * getBuf() const
virtual ~ossimFixedTileCache()
void stretchToTileBoundary(const ossimIpt &tileWidthHeight)
virtual ossim_uint32 getDataSizeInBytes() const
std::list< ossim_int32 > theLruQueue
virtual ossimRefPtr< ossimImageData > addTile(ossimRefPtr< ossimImageData > imageData, bool duplicateData=true)
virtual const ossimIpt & getOrigin() const
void adjustLru(ossim_int32 id)