//******************************************************************* // // License: See top level LICENSE.txt file. // // Author: Garrett Potts // // Description: ossimCacheTileSource // //******************************************************************* // $Id: ossimCacheTileSource.h 20456 2012-01-13 19:39:30Z gpotts $ #ifndef ossimCacheTileSource_HEADER #define ossimCacheTileSource_HEADER #include #include #include #include /** Cache Tile Source */ class OSSIMDLLEXPORT ossimCacheTileSource : public ossimImageSourceFilter { public: typedef std::vector RLevelCacheList; /** * Will construct a new Application cache */ ossimCacheTileSource(); // ossimCacheTileSource(ossimImageSource* inputSource); virtual ossimString getLongName() const; virtual ossimString getShortName() const; virtual ossimRefPtr getTile(const ossimIrect& tileRect, ossim_uint32 resLevel=0); virtual void initialize(); virtual void flush(); virtual void setCachingEnabledFlag(bool value); virtual void setEventProgressFlag(bool value); void getTileSize(ossimIpt& size) const; /** * @brief Set the tile size. This changes underlying cache tile size. * @param Size of cache tile. */ void setTileSize(const ossimIpt& size); virtual ossim_uint32 getTileWidth() const; virtual ossim_uint32 getTileHeight() const; virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0); virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const; virtual ossimRefPtr getProperty(const ossimString& name)const; virtual void setProperty(ossimRefPtr property); virtual void getPropertyNames(std::vector& propertyNames)const; protected: virtual ~ossimCacheTileSource(); void allocate(); void deleteRlevelCache(); void initializeRlevelCache(); ossimAppFixedTileCache::ossimAppFixedCacheId getCacheId(ossim_uint32 resLevel); ossimRefPtr theTile; ossimIpt theFixedTileSize; bool theCachingEnabled; bool theEventProgressFlag; bool theUseInputTileSizeFlag; RLevelCacheList theRLevelCacheList; /** For lock and unlock. */ virtual void fireProgressEvent(double percentComplete); virtual ossimRefPtr fillTile(ossim_uint32 resLevel); TYPE_DATA }; #endif /* end of "#ifndef ossimCacheTileSource_HEADER" */