30 #ifndef GDAL_PROXY_H_INCLUDED
31 #define GDAL_PROXY_H_INCLUDED
50 virtual void UnrefUnderlyingDataset(
GDALDataset* poUnderlyingDataset);
52 virtual CPLErr IBuildOverviews(
const char *,
int,
int *,
53 int,
int *, GDALProgressFunc,
void * );
54 virtual CPLErr IRasterIO(
GDALRWFlag,
int,
int,
int,
int,
61 virtual char **
GetMetadata(
const char * pszDomain );
63 const char * pszDomain );
65 const char * pszDomain );
67 const char * pszValue,
68 const char * pszDomain );
86 const char *pszGCPProjection );
88 virtual CPLErr
AdviseRead(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
89 int nBufXSize,
int nBufYSize,
91 int nBandCount,
int *panBandList,
92 char **papszOptions );
110 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
112 virtual CPLErr IReadBlock(
int,
int,
void * );
113 virtual CPLErr IWriteBlock(
int,
int,
void * );
114 virtual CPLErr IRasterIO(
GDALRWFlag,
int,
int,
int,
int,
121 virtual char **
GetMetadata(
const char * pszDomain );
123 const char * pszDomain );
125 const char * pszDomain );
127 const char * pszValue,
128 const char * pszDomain );
132 virtual double GetMinimum(
int *pbSuccess = NULL );
133 virtual double GetMaximum(
int *pbSuccess = NULL );
134 virtual double GetOffset(
int *pbSuccess = NULL );
135 virtual double GetScale(
int *pbSuccess = NULL );
139 virtual CPLErr
Fill(
double dfRealValue,
double dfImaginaryValue = 0);
151 double *pdfMin,
double *pdfMax,
152 double *pdfMean,
double *padfStdDev );
154 double *pdfMin,
double *pdfMax,
155 double *pdfMean,
double *pdfStdDev,
156 GDALProgressFunc,
void *pProgressData );
158 double dfMean,
double dfStdDev );
166 GDALProgressFunc,
void * );
168 virtual CPLErr
AdviseRead(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
169 int nBufXSize,
int nBufYSize,
172 virtual CPLErr
GetHistogram(
double dfMin,
double dfMax,
173 int nBuckets, GUIntBig * panHistogram,
174 int bIncludeOutOfRange,
int bApproxOK,
175 GDALProgressFunc,
void *pProgressData );
178 int *pnBuckets, GUIntBig ** ppanHistogram,
180 GDALProgressFunc,
void *pProgressData);
182 int nBuckets, GUIntBig *panHistogram );
193 GIntBig *pnLineSpace,
194 char **papszOptions );
204 typedef struct _GDALProxyPoolCacheEntry GDALProxyPoolCacheEntry;
210 GIntBig responsiblePID;
212 char *pszProjectionRef;
213 double adfGeoTransform[6];
214 int bHasSrcProjection;
215 int bHasSrcGeoTransform;
216 char *pszGCPProjection;
219 CPLHashSet *metadataSet;
220 CPLHashSet *metadataItemSet;
222 GDALProxyPoolCacheEntry* cacheEntry;
226 virtual void UnrefUnderlyingDataset(
GDALDataset* poUnderlyingDataset);
232 int nRasterXSize,
int nRasterYSize,
235 const char * pszProjectionRef = NULL,
236 double * padfGeoTransform = NULL);
239 void SetOpenOptions(
char** papszOpenOptions);
240 void AddSrcBandDescription(
GDALDataType eDataType,
int nBlockXSize,
int nBlockYSize);
251 virtual char **
GetMetadata(
const char * pszDomain );
253 const char * pszDomain );
273 CPLHashSet *metadataSet;
274 CPLHashSet *metadataItemSet;
276 char **papszCategoryNames;
279 int nSizeProxyOverviewRasterBand;
287 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
295 int nBlockXSize,
int nBlockYSize);
300 void AddSrcMaskBandDescription(
GDALDataType eDataType,
int nBlockXSize,
int nBlockYSize);
305 virtual char **
GetMetadata(
const char * pszDomain );
307 const char * pszDomain );
329 int nRefCountUnderlyingMainRasterBand;
333 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
353 int nRefCountUnderlyingMainRasterBand;
357 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
366 int nBlockXSize,
int nBlockYSize);
380 typedef struct GDALProxyPoolDatasetHS *GDALProxyPoolDatasetH;
382 GDALProxyPoolDatasetH CPL_DLL GDALProxyPoolDatasetCreate(
const char* pszSourceDatasetDescription,
383 int nRasterXSize,
int nRasterYSize,
385 const char * pszProjectionRef,
386 double * padfGeoTransform);
388 void CPL_DLL GDALProxyPoolDatasetDelete(GDALProxyPoolDatasetH hProxyPoolDataset);
390 void CPL_DLL GDALProxyPoolDatasetAddSrcBandDescription( GDALProxyPoolDatasetH hProxyPoolDataset,
392 int nBlockXSize,
int nBlockYSize);
The GDALRasterAttributeTable (or RAT) class is used to encapsulate a table used to provide attribute ...
Definition: gdal_rat.h:46
virtual GDALDriver * GetDriver(void)
Fetch the driver to which this dataset relates.
Definition: gdaldataset.cpp:1038
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
Definition: gdaldataset.cpp:903
virtual CPLErr AdviseRead(int nXOff, int nYOff, int nXSize, int nYSize, int nBufXSize, int nBufYSize, GDALDataType eDT, char **papszOptions)
Advise driver of upcoming read requests.
Definition: gdalrasterband.cpp:3390
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
GDALDataType
Definition: gdal.h:57
virtual double GetScale(int *pbSuccess=NULL)
Fetch the raster value scale.
Definition: gdalrasterband.cpp:2317
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
Definition: gdalrasterband.cpp:4618
virtual double GetMaximum(int *pbSuccess=NULL)
Fetch the maximum value for this band.
Definition: gdalrasterband.cpp:1589
virtual double GetNoDataValue(int *pbSuccess=NULL)
Fetch the no data value for this band.
Definition: gdalrasterband.cpp:1428
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
Definition: gdalrasterband.cpp:1335
virtual void FlushCache(void)
Flush all write cached data to disk.
Definition: gdaldataset.cpp:374
virtual const char * GetGCPProjection()
Get output projection for GCPs.
virtual CPLErr SetColorInterpretation(GDALColorInterp)
Set color interpretation of a band.
Definition: gdalrasterband.cpp:1807
virtual int HasArbitraryOverviews()
Check for arbitrary overviews.
Definition: gdalrasterband.cpp:1948
virtual GDALRasterBand * GetOverview(int)
Fetch overview raster band object.
Definition: gdalrasterband.cpp:2028
virtual CPLErr GetDefaultHistogram(double *pdfMin, double *pdfMax, int *pnBuckets, GUIntBig **ppanHistogram, int bForce, GDALProgressFunc, void *pProgressData)
Fetch default raster histogram.
Definition: gdalrasterband.cpp:3198
virtual CPLErr SetProjection(const char *)
Set the projection reference string for this dataset.
Definition: gdaldataset.cpp:846
virtual CPLErr AdviseRead(int nXOff, int nYOff, int nXSize, int nYSize, int nBufXSize, int nBufYSize, GDALDataType eDT, int nBandCount, int *panBandList, char **papszOptions)
Advise driver of upcoming read requests.
Definition: gdaldataset.cpp:2218
virtual CPLErr SetProjection(const char *)
Set the projection reference string for this dataset.
virtual CPLErr SetGeoTransform(double *)
Set the affine transformation coefficients.
virtual GDALColorInterp GetColorInterpretation()
How should this band be interpreted as color?
Definition: gdalrasterband.cpp:1767
Definition: gdal_proxy.h:104
virtual CPLErr SetScale(double)
Set scaling ratio.
Definition: gdalrasterband.cpp:2362
virtual GDALRasterBand * GetRasterSampleOverview(GUIntBig)
Fetch best sampling overview.
virtual double GetOffset(int *pbSuccess=NULL)
Fetch the raster value offset.
Definition: gdalrasterband.cpp:2218
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Definition: gdaldataset.cpp:803
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
GDALRWFlag
Definition: gdal.h:104
virtual CPLErr SetStatistics(double dfMin, double dfMax, double dfMean, double dfStdDev)
Set statistics on band.
Definition: gdalrasterband.cpp:3997
virtual int GetMaskFlags()
Return the status flags of the mask band associated with the band.
Definition: gdalrasterband.cpp:4852
virtual GDALRasterAttributeTable * GetDefaultRAT()
Fetch default Raster Attribute Table.
Definition: gdalrasterband.cpp:4505
virtual char ** GetMetadata(const char *pszDomain="")
Fetch metadata.
Definition: gdalmajorobject.cpp:243
virtual CPLErr SetOffset(double)
Set scaling offset.
Definition: gdalrasterband.cpp:2263
virtual CPLErr GetHistogram(double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc, void *pProgressData)
Compute raster histogram.
Definition: gdalrasterband.cpp:2683
virtual GDALRasterBand * GetOverview(int)
Fetch overview raster band object.
virtual CPLErr BuildOverviews(const char *, int, int *, GDALProgressFunc, void *)
Build raster overview(s)
Definition: gdalrasterband.cpp:2180
virtual CPLErr SetGCPs(int nGCPCount, const GDAL_GCP *pasGCPList, const char *pszGCPProjection)
Assign GCPs.
Definition: gdaldataset.cpp:1341
virtual CPLErr ComputeStatistics(int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc, void *pProgressData)
Compute image statistics.
Definition: gdalrasterband.cpp:3585
struct CPLVirtualMem CPLVirtualMem
Opaque type that represents a virtual memory mapping.
Definition: cpl_virtualmem.h:60
virtual void * GetInternalHandle(const char *)
Fetch a format specific internally meaningful handle.
virtual double GetMinimum(int *pbSuccess=NULL)
Fetch the minimum value for this band.
Definition: gdalrasterband.cpp:1681
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
virtual CPLErr FlushCache()
Flush raster data cache.
Definition: gdalrasterband.cpp:849
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
GIntBig GSpacing
Type to express pixel, line or band spacing.
Definition: gdal.h:248
virtual CPLErr SetDefaultHistogram(double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram)
Set default histogram.
Definition: gdalrasterband.cpp:4410
virtual CPLErr SetColorTable(GDALColorTable *)
Set the raster color table.
Definition: gdalrasterband.cpp:1899
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain="")
Fetch single metadata item.
Definition: gdalmajorobject.cpp:331
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
Definition: gdaldataset.cpp:1287
virtual CPLErr SetGeoTransform(double *)
Set the affine transformation coefficients.
Definition: gdaldataset.cpp:956
Public (C callable) GDAL entry points.
Definition: gdal_proxy.h:44
virtual CPLErr DeleteNoDataValue()
Remove the no data value for this band.
Definition: gdalrasterband.cpp:1539
Definition: gdal_proxy.h:207
virtual const char * GetUnitType()
Return raster unit type.
virtual CPLErr SetMetadata(char **papszMetadata, const char *pszDomain="")
Set metadata.
Definition: gdalmajorobject.cpp:286
virtual int GetGCPCount()
Get number of GCPs.
Definition: gdaldataset.cpp:1211
Definition: gdal_proxy.h:322
virtual CPLErr SetNoDataValue(double)
Set the no data value for this band.
Definition: gdalrasterband.cpp:1483
virtual CPLErr ComputeRasterMinMax(int, double *)
Compute the min/max values for a band.
Definition: gdalrasterband.cpp:4065
virtual const char * GetUnitType()
Return raster unit type.
Definition: gdalrasterband.cpp:2409
Definition: gdal_proxy.h:347
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdalrasterband.cpp:1854
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
virtual CPLErr CreateMaskBand(int nFlagsIn)
Adds a mask band to the dataset.
Definition: gdaldataset.cpp:2431
virtual char ** GetFileList(void)
Fetch files forming dataset.
Definition: gdaldataset.cpp:2303
virtual void * GetInternalHandle(const char *)
Fetch a format specific internally meaningful handle.
Definition: gdaldataset.cpp:1000
virtual const char * GetGCPProjection()
Get output projection for GCPs.
Definition: gdaldataset.cpp:1250
virtual CPLErr SetCategoryNames(char **)
Set the category names for this band.
Definition: gdalrasterband.cpp:1379
virtual int GetOverviewCount()
Return the number of overview layers available.
Definition: gdalrasterband.cpp:1985
virtual CPLVirtualMem * GetVirtualMemAuto(GDALRWFlag eRWFlag, int *pnPixelSpace, GIntBig *pnLineSpace, char **papszOptions) CPL_WARN_UNUSED_RESULT
Create a CPLVirtualMem object from a GDAL raster band object.
Definition: gdalrasterband.cpp:5229
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
virtual CPLErr SetUnitType(const char *)
Set unit type.
Definition: gdalrasterband.cpp:2453
A single raster band (or channel).
Definition: gdal_priv.h:735
GDALAccess
Definition: gdal.h:98
virtual CPLErr CreateMaskBand(int nFlagsIn)
Adds a mask band to the current band.
Definition: gdalrasterband.cpp:4925
A set of associated raster bands, usually from one file.
Definition: gdal_priv.h:296
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain)
Fetch single metadata item.
virtual CPLErr SetDefaultRAT(const GDALRasterAttributeTable *)
Set default Raster Attribute Table.
Definition: gdalrasterband.cpp:4549
virtual GDALRasterBand * GetRasterSampleOverview(GUIntBig)
Fetch best sampling overview.
Definition: gdalrasterband.cpp:2078
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain)
Fetch single metadata item.
GDALColorInterp
Definition: gdal.h:173
virtual CPLErr SetMetadataItem(const char *pszName, const char *pszValue, const char *pszDomain="")
Set single metadata item.
Definition: gdalmajorobject.cpp:374
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdal_proxy.h:270
virtual CPLErr GetStatistics(int bApproxOK, int bForce, double *pdfMin, double *pdfMax, double *pdfMean, double *padfStdDev)
Fetch image statistics.
Definition: gdalrasterband.cpp:3467
Format specific driver.
Definition: gdal_priv.h:1034
Definition: gdal_priv.h:659
virtual char ** GetMetadataDomainList()
Fetch list of metadata domains.
Definition: gdalmajorobject.cpp:156
virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue=0)
Fill this band with a constant value.
Definition: gdalrasterband.cpp:1191
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Ground Control Point.
Definition: gdal.h:492