Go to the documentation of this file.
26 #ifndef __TERRALIB_RASTER_INTERNAL_RASTEERSYNCHRONIZER_H
27 #define __TERRALIB_RASTER_INTERNAL_RASTEERSYNCHRONIZER_H
32 #include "../common/Enums.h"
37 #include <condition_variable>
43 class SynchronizedBandBlocksManager;
44 class SynchronizedBand;
45 class SynchronizedRaster;
101 const unsigned int blockXIndex,
const unsigned int blockYIndex,
114 const unsigned int blockXIndex,
const unsigned int blockYIndex,
127 #endif //__TERRALIB_RASTER_INTERNAL_RASTEERSYNCHRONIZER_H
Raster implementaton for TerraLib 4.x.
bool acquireBlock(const unsigned int bandIdx, const unsigned int blockXIndex, const unsigned int blockYIndex, void *blkDataPtr)
Acquire a raster data block.
RasterSynchronizer(Raster &raster, const te::common::AccessPolicy policy)
Constructor.
An abstract class for raster data strucutures.
bool releaseBlock(const unsigned int bandIdx, const unsigned int blockXIndex, const unsigned int blockYIndex, void *blkDataPtr)
Release a raster data block.
Syncrhonized raster band.
An access synchronizer to be used in SynchronizedRaster raster instances.
Raster * m_rasterPtr
The input raster.
te::common::AccessPolicy m_policy
The access policy used on the given input raster.
#define TERASTEREXPORT
You can use this macro in order to export/import classes and functions from this module.
std::mutex m_mutex
General sync mutex;.
An adapter class to allow concurrent access to raster data by multiple threads.
RasterSynchronizer(const RasterSynchronizer &other)
Synchronized raster raster band blocks manager.
BlocksUseCounterT m_blocksUseCounters
blocks use counter.
std::condition_variable_any m_condVar
Block use request sync variable.
Proxy configuration file for TerraView (see terraview_config.h).
AccessPolicy
Supported data access policies (can be used as bitfield).
std::vector< std::vector< std::vector< unsigned int > > > BlocksUseCounterT
Blocks use counter type definition.