Synchronized raster raster band blocks manager. More...
#include <SynchronizedBandBlocksManager.h>
  
 Classes | |
| class | BlockIndex | 
| Internal blocks indexes.  More... | |
Public Member Functions | |
| void | free () | 
| void * | getBlockPointer (unsigned int band, unsigned int x, unsigned int y) | 
| Returns a pointer to the required data block.  More... | |
| unsigned int | getMaxNumberOfCacheBlocks () const | 
| The maximum number of cache blocks.  More... | |
| te::rst::Raster * | getRaster () const | 
| Returns the associated raster.  More... | |
| RasterSynchronizer * | getSynchronizer () const | 
| Return a pointer to the assotiated synchronizer instance or NULL if there is none.  More... | |
| bool | initialize (RasterSynchronizer &sync, const unsigned char maxMemPercentUsed) | 
| Initialize this instance to an initial state.  More... | |
| bool | initialize (const unsigned int maxNumberOfCacheBlocks, RasterSynchronizer &sync) | 
| Initialize this instance to an initial state.  More... | |
| bool | isInitialized () const | 
| Returns true if this instance is initialized.  More... | |
| SynchronizedBandBlocksManager () | |
| ~SynchronizedBandBlocksManager () | |
Protected Attributes | |
| std::vector< BlockIndex > | m_blocksFifo | 
| blocks swap FIFO.  More... | |
| unsigned int | m_blocksFifoNextSwapBlockIndex | 
| The next block swapp index over m_blocksFifo.  More... | |
| std::vector< unsigned char * > | m_blocksHandler | 
| Cache blocks handler.  More... | |
| std::vector< std::vector < std::vector< unsigned char * > > >  | m_blocksPointers | 
| 3D Matrix of block pointers indexed as [band][blockYIndex][blockXIndex].  More... | |
| unsigned char * | m_getBlockPointer_BlkPtr | 
| unsigned int | m_globalBlockSizeBytes | 
| The maximum block size for all bands.  More... | |
| unsigned int | m_globalBlocksNumberX | 
| The maximum number of blocks (X axis) for all bands.  More... | |
| unsigned int | m_globalBlocksNumberY | 
| The maximum number of blocks (Y axis) for all bands.  More... | |
| unsigned int | m_maxNumberOfCacheBlocks | 
| The maximum number of cache blocks.  More... | |
| RasterSynchronizer * | m_syncPtr | 
| A pointer to the synchronizer used by this instance, of null if not initialized.  More... | |
Private Member Functions | |
| void | initState () | 
| Initialize this instance to an initial state.  More... | |
Synchronized raster raster band blocks manager.
Definition at line 50 of file SynchronizedBandBlocksManager.h.
| te::rst::SynchronizedBandBlocksManager::SynchronizedBandBlocksManager | ( | ) | 
Definition at line 50 of file SynchronizedBandBlocksManager.cpp.
| te::rst::SynchronizedBandBlocksManager::~SynchronizedBandBlocksManager | ( | ) | 
Definition at line 55 of file SynchronizedBandBlocksManager.cpp.
| void te::rst::SynchronizedBandBlocksManager::free | ( | ) | 
Definition at line 144 of file SynchronizedBandBlocksManager.cpp.
References TE_TR, and te::common::WAccess.
| void * te::rst::SynchronizedBandBlocksManager::getBlockPointer | ( | unsigned int | band, | 
| unsigned int | x, | ||
| unsigned int | y | ||
| ) | 
Returns a pointer to the required data block.
| band | The band index. | 
| x | The block-id in x (or x-offset). | 
| y | The block-id in y (or y-offset). | 
Definition at line 196 of file SynchronizedBandBlocksManager.cpp.
References te::rst::SynchronizedBandBlocksManager::BlockIndex::m_b, te::rst::SynchronizedBandBlocksManager::BlockIndex::m_x, te::rst::SynchronizedBandBlocksManager::BlockIndex::m_y, and TE_TR.
      
  | 
  inline | 
The maximum number of cache blocks.
Definition at line 117 of file SynchronizedBandBlocksManager.h.
| te::rst::Raster * te::rst::SynchronizedBandBlocksManager::getRaster | ( | ) | const | 
Returns the associated raster.
Definition at line 264 of file SynchronizedBandBlocksManager.cpp.
Referenced by te::rst::SynchronizedBand::SynchronizedBand().
      
  | 
  inline | 
Return a pointer to the assotiated synchronizer instance or NULL if there is none.
Definition at line 123 of file SynchronizedBandBlocksManager.h.
Referenced by te::rst::SynchronizedBand::SynchronizedBand().
| bool te::rst::SynchronizedBandBlocksManager::initialize | ( | RasterSynchronizer & | sync, | 
| const unsigned char | maxMemPercentUsed | ||
| ) | 
Initialize this instance to an initial state.
| sync | The synchronized used by this instance. | 
| maxMemPercentUsed | The maximum free memory percentual to use valid range: [1:100]. | 
Definition at line 60 of file SynchronizedBandBlocksManager.cpp.
References te::rst::Raster::getBand(), te::rst::Band::getBlockSize(), te::rst::Raster::getNumberOfBands(), te::common::GetTotalPhysicalMemory(), te::common::GetTotalVirtualMemory(), te::common::GetUsedVirtualMemory(), te::rst::RasterSynchronizer::m_mutex, and te::rst::RasterSynchronizer::m_raster.
Referenced by te::rst::SynchronizedRaster::SynchronizedRaster().
| bool te::rst::SynchronizedBandBlocksManager::initialize | ( | const unsigned int | maxNumberOfCacheBlocks, | 
| RasterSynchronizer & | sync | ||
| ) | 
Initialize this instance to an initial state.
| sync | The synchronized used by this instance. | 
| maxNumberOfCacheBlocks | The maximum number of cache blocks. | 
Definition at line 89 of file SynchronizedBandBlocksManager.cpp.
References te::rst::Raster::getBand(), te::rst::Band::getProperty(), te::rst::RasterSynchronizer::m_mutex, te::rst::BandProperty::m_nblocksx, and te::rst::RasterSynchronizer::m_raster.
      
  | 
  private | 
Initialize this instance to an initial state.
Definition at line 39 of file SynchronizedBandBlocksManager.cpp.
References m_blocksFifoNextSwapBlockIndex, m_getBlockPointer_BlkPtr, m_globalBlockSizeBytes, m_globalBlocksNumberX, m_globalBlocksNumberY, m_maxNumberOfCacheBlocks, and m_syncPtr.
      
  | 
  inline | 
Returns true if this instance is initialized.
Definition at line 91 of file SynchronizedBandBlocksManager.h.
      
  | 
  protected | 
blocks swap FIFO.
Definition at line 172 of file SynchronizedBandBlocksManager.h.
      
  | 
  protected | 
The next block swapp index over m_blocksFifo.
Definition at line 163 of file SynchronizedBandBlocksManager.h.
Referenced by initState().
      
  | 
  protected | 
Cache blocks handler.
Definition at line 170 of file SynchronizedBandBlocksManager.h.
      
  | 
  protected | 
3D Matrix of block pointers indexed as [band][blockYIndex][blockXIndex].
Definition at line 168 of file SynchronizedBandBlocksManager.h.
      
  | 
  protected | 
Definition at line 166 of file SynchronizedBandBlocksManager.h.
Referenced by initState().
      
  | 
  protected | 
The maximum block size for all bands.
Definition at line 159 of file SynchronizedBandBlocksManager.h.
Referenced by initState().
      
  | 
  protected | 
The maximum number of blocks (X axis) for all bands.
Definition at line 155 of file SynchronizedBandBlocksManager.h.
Referenced by initState().
      
  | 
  protected | 
The maximum number of blocks (Y axis) for all bands.
Definition at line 157 of file SynchronizedBandBlocksManager.h.
Referenced by initState().
      
  | 
  protected | 
The maximum number of cache blocks.
Definition at line 161 of file SynchronizedBandBlocksManager.h.
Referenced by initState().
      
  | 
  protected | 
A pointer to the synchronizer used by this instance, of null if not initialized.
Definition at line 153 of file SynchronizedBandBlocksManager.h.
Referenced by initState().