26#ifndef __TERRALIB_RASTER_INTERNAL_RASTEERSYNCHRONIZER_H
27#define __TERRALIB_RASTER_INTERNAL_RASTEERSYNCHRONIZER_H
37#include <condition_variable>
101 const unsigned int blockXIndex,
const unsigned int blockYIndex,
114 const unsigned int blockXIndex,
const unsigned int blockYIndex,
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.
friend class SynchronizedBandBlocksManager
bool releaseBlock(const unsigned int bandIdx, const unsigned int blockXIndex, const unsigned int blockYIndex, void *blkDataPtr)
Release a raster data block.
friend class SynchronizedBand
friend class SynchronizedRaster
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).
Namespace for the Raster module of TerraLib.
An abstract class for raster data strucutures.
Configuration flags for the Raster module of TerraLib.
#define TERASTEREXPORT
You can use this macro in order to export/import classes and functions from this module.