An access synchronizer to be used in SynchronizedRaster raster instances. More...
#include <RasterSynchronizer.h>
  
 Public Member Functions | |
| RasterSynchronizer (Raster &raster, const te::common::AccessPolicy policy) | |
| Constructor.  More... | |
| ~RasterSynchronizer () | |
Protected Types | |
| typedef std::vector < std::vector< std::vector < unsigned int > > >  | BlocksUseCounterT | 
| Blocks use counter type definition.  More... | |
Protected Member Functions | |
| bool | acquireBlock (const unsigned int bandIdx, const unsigned int blockXIndex, const unsigned int blockYIndex, void *blkDataPtr) | 
| Acquire a raster data block.  More... | |
| bool | releaseBlock (const unsigned int bandIdx, const unsigned int blockXIndex, const unsigned int blockYIndex, void *blkDataPtr) | 
| Release a raster data block.  More... | |
Protected Attributes | |
| BlocksUseCounterT | m_blocksUseCounters | 
| blocks use counter.  More... | |
| boost::condition_variable_any | m_condVar | 
| Block use request sync variable.  More... | |
| boost::mutex | m_mutex | 
| General sync mutex;.  More... | |
| te::common::AccessPolicy | m_policy | 
| The access policy used on the given input raster.  More... | |
| Raster & | m_raster | 
| The input raster.  More... | |
Friends | |
| class | SynchronizedBand | 
| class | SynchronizedBandBlocksManager | 
| class | SynchronizedRaster | 
An access synchronizer to be used in SynchronizedRaster raster instances.
Definition at line 57 of file RasterSynchronizer.h.
      
  | 
  protected | 
Blocks use counter type definition.
Definition at line 82 of file RasterSynchronizer.h.
| te::rst::RasterSynchronizer::RasterSynchronizer | ( | Raster & | raster, | 
| const te::common::AccessPolicy | policy | ||
| ) | 
Constructor.
| raster | The raster to synchronize. | 
| policy | The access policy to use on the given input raster. | 
Definition at line 35 of file RasterSynchronizer.cpp.
References te::rst::Raster::getAccessPolicy(), te::rst::Raster::getBand(), te::rst::Raster::getNumberOfBands(), te::rst::Band::getProperty(), m_blocksUseCounters, te::rst::BandProperty::m_nblocksx, te::rst::BandProperty::m_nblocksy, m_policy, te::common::NoAccess, te::common::RAccess, and te::common::WAccess.
| te::rst::RasterSynchronizer::~RasterSynchronizer | ( | ) | 
Definition at line 70 of file RasterSynchronizer.cpp.
      
  | 
  protected | 
Acquire a raster data block.
| bandIdx | Block band index. | 
| blockXIndex | Block X index. | 
| blockYIndex | Block Y index. | 
| blkDataPtr | A pointer to a pre-allocated area where the block data will be written. | 
Definition at line 74 of file RasterSynchronizer.cpp.
References TE_TR, and te::common::WAccess.
      
  | 
  protected | 
Release a raster data block.
| bandIdx | Block band index. | 
| blockXIndex | Block X index. | 
| blockYIndex | Block Y index. | 
| blkDataPtr | A pointer where the block data will be read. | 
Definition at line 127 of file RasterSynchronizer.cpp.
References TE_TR, and te::common::WAccess.
      
  | 
  friend | 
Definition at line 60 of file RasterSynchronizer.h.
      
  | 
  friend | 
Definition at line 59 of file RasterSynchronizer.h.
      
  | 
  friend | 
Definition at line 61 of file RasterSynchronizer.h.
      
  | 
  protected | 
blocks use counter.
Definition at line 92 of file RasterSynchronizer.h.
Referenced by RasterSynchronizer().
      
  | 
  protected | 
Block use request sync variable.
Definition at line 90 of file RasterSynchronizer.h.
      
  | 
  protected | 
General sync mutex;.
Definition at line 88 of file RasterSynchronizer.h.
Referenced by te::rst::SynchronizedBandBlocksManager::initialize(), te::rst::SynchronizedBand::SynchronizedBand(), and te::rst::SynchronizedRaster::SynchronizedRaster().
      
  | 
  protected | 
The access policy used on the given input raster.
Definition at line 84 of file RasterSynchronizer.h.
Referenced by RasterSynchronizer().
      
  | 
  protected | 
The input raster.
Definition at line 86 of file RasterSynchronizer.h.
Referenced by te::rst::SynchronizedBandBlocksManager::initialize(), and te::rst::SynchronizedRaster::SynchronizedRaster().