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