30 #ifndef GDAL_PROXY_H_INCLUDED 31 #define GDAL_PROXY_H_INCLUDED 37 #include "gdal_priv.h" 48 virtual void UnrefUnderlyingDataset(
GDALDataset* poUnderlyingDataset);
50 virtual CPLErr IBuildOverviews(
const char *,
int,
int *,
51 int,
int *, GDALProgressFunc,
void * );
52 virtual CPLErr IRasterIO(
GDALRWFlag,
int,
int,
int,
int,
59 virtual char **
GetMetadata(
const char * pszDomain );
61 const char * pszDomain );
63 const char * pszDomain );
65 const char * pszValue,
66 const char * pszDomain );
84 const char *pszGCPProjection );
86 virtual CPLErr
AdviseRead(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
87 int nBufXSize,
int nBufYSize,
89 int nBandCount,
int *panBandList,
90 char **papszOptions );
104 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
106 virtual CPLErr IReadBlock(
int,
int,
void * );
107 virtual CPLErr IWriteBlock(
int,
int,
void * );
108 virtual CPLErr IRasterIO(
GDALRWFlag,
int,
int,
int,
int,
115 virtual char **
GetMetadata(
const char * pszDomain );
117 const char * pszDomain );
119 const char * pszDomain );
121 const char * pszValue,
122 const char * pszDomain );
126 virtual double GetMinimum(
int *pbSuccess = NULL );
127 virtual double GetMaximum(
int *pbSuccess = NULL );
128 virtual double GetOffset(
int *pbSuccess = NULL );
129 virtual double GetScale(
int *pbSuccess = NULL );
133 virtual CPLErr
Fill(
double dfRealValue,
double dfImaginaryValue = 0);
144 double *pdfMin,
double *pdfMax,
145 double *pdfMean,
double *padfStdDev );
147 double *pdfMin,
double *pdfMax,
148 double *pdfMean,
double *pdfStdDev,
149 GDALProgressFunc,
void *pProgressData );
151 double dfMean,
double dfStdDev );
159 GDALProgressFunc,
void * );
161 virtual CPLErr
AdviseRead(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
162 int nBufXSize,
int nBufYSize,
165 virtual CPLErr
GetHistogram(
double dfMin,
double dfMax,
166 int nBuckets, GUIntBig * panHistogram,
167 int bIncludeOutOfRange,
int bApproxOK,
168 GDALProgressFunc,
void *pProgressData );
171 int *pnBuckets, GUIntBig ** ppanHistogram,
173 GDALProgressFunc,
void *pProgressData);
175 int nBuckets, GUIntBig *panHistogram );
186 GIntBig *pnLineSpace,
187 char **papszOptions );
195 typedef struct _GDALProxyPoolCacheEntry GDALProxyPoolCacheEntry;
201 GIntBig responsiblePID;
203 char *pszProjectionRef;
204 double adfGeoTransform[6];
205 int bHasSrcProjection;
206 int bHasSrcGeoTransform;
207 char *pszGCPProjection;
210 CPLHashSet *metadataSet;
211 CPLHashSet *metadataItemSet;
213 GDALProxyPoolCacheEntry* cacheEntry;
217 virtual void UnrefUnderlyingDataset(
GDALDataset* poUnderlyingDataset);
223 int nRasterXSize,
int nRasterYSize,
226 const char * pszProjectionRef = NULL,
227 double * padfGeoTransform = NULL);
230 void SetOpenOptions(
char** papszOpenOptions);
231 void AddSrcBandDescription(
GDALDataType eDataType,
int nBlockXSize,
int nBlockYSize);
242 virtual char **
GetMetadata(
const char * pszDomain );
244 const char * pszDomain );
262 CPLHashSet *metadataSet;
263 CPLHashSet *metadataItemSet;
265 char **papszCategoryNames;
268 int nSizeProxyOverviewRasterBand;
276 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
284 int nBlockXSize,
int nBlockYSize);
289 void AddSrcMaskBandDescription(
GDALDataType eDataType,
int nBlockXSize,
int nBlockYSize);
294 virtual char **
GetMetadata(
const char * pszDomain );
296 const char * pszDomain );
317 int nRefCountUnderlyingMainRasterBand;
321 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
341 int nRefCountUnderlyingMainRasterBand;
345 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
354 int nBlockXSize,
int nBlockYSize);
368 typedef struct GDALProxyPoolDatasetHS *GDALProxyPoolDatasetH;
370 GDALProxyPoolDatasetH CPL_DLL GDALProxyPoolDatasetCreate(
const char* pszSourceDatasetDescription,
371 int nRasterXSize,
int nRasterYSize,
373 const char * pszProjectionRef,
374 double * padfGeoTransform);
376 void CPL_DLL GDALProxyPoolDatasetDelete(GDALProxyPoolDatasetH hProxyPoolDataset);
378 void CPL_DLL GDALProxyPoolDatasetAddSrcBandDescription( GDALProxyPoolDatasetH hProxyPoolDataset,
380 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:1025
virtual CPLErr GetGeoTransform(double *)
Fetch the affine transformation coefficients.
Definition: gdaldataset.cpp:890
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:3590
virtual CPLVirtualMem * GetVirtualMemAuto(GDALRWFlag eRWFlag, int *pnPixelSpace, GIntBig *pnLineSpace, char **papszOptions)
Create a CPLVirtualMem object from a GDAL raster band object.
Definition: gdalrasterband.cpp:5394
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:2515
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
Definition: gdalrasterband.cpp:4819
virtual double GetMaximum(int *pbSuccess=NULL)
Fetch the maximum value for this band.
Definition: gdalrasterband.cpp:1780
virtual double GetNoDataValue(int *pbSuccess=NULL)
Fetch the no data value for this band.
Definition: gdalrasterband.cpp:1684
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
Definition: gdalrasterband.cpp:1591
virtual void FlushCache(void)
Flush all write cached data to disk.
Definition: gdaldataset.cpp:356
virtual const char * GetGCPProjection()
Get output projection for GCPs.
virtual CPLErr SetColorInterpretation(GDALColorInterp)
Set color interpretation of a band.
Definition: gdalrasterband.cpp:1998
virtual int HasArbitraryOverviews()
Check for arbitrary overviews.
Definition: gdalrasterband.cpp:2139
virtual GDALRasterBand * GetOverview(int)
Fetch overview raster band object.
Definition: gdalrasterband.cpp:2219
virtual CPLErr GetDefaultHistogram(double *pdfMin, double *pdfMax, int *pnBuckets, GUIntBig **ppanHistogram, int bForce, GDALProgressFunc, void *pProgressData)
Fetch default raster histogram.
Definition: gdalrasterband.cpp:3398
virtual CPLErr SetProjection(const char *)
Set the projection reference string for this dataset.
Definition: gdaldataset.cpp:833
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:2055
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:1958
Definition: gdal_proxy.h:100
virtual CPLErr SetScale(double)
Set scaling ratio.
Definition: gdalrasterband.cpp:2560
virtual GDALRasterBand * GetRasterSampleOverview(GUIntBig)
Fetch best sampling overview.
virtual double GetOffset(int *pbSuccess=NULL)
Fetch the raster value offset.
Definition: gdalrasterband.cpp:2416
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Definition: gdaldataset.cpp:790
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
GDALRWFlag
Definition: gdal.h:101
virtual CPLErr SetStatistics(double dfMin, double dfMax, double dfMean, double dfStdDev)
Set statistics on band.
Definition: gdalrasterband.cpp:4197
virtual int GetMaskFlags()
Return the status flags of the mask band associated with the band.
Definition: gdalrasterband.cpp:5019
virtual GDALRasterAttributeTable * GetDefaultRAT()
Fetch default Raster Attribute Table.
Definition: gdalrasterband.cpp:4706
virtual char ** GetMetadata(const char *pszDomain="")
Fetch metadata.
Definition: gdalmajorobject.cpp:243
virtual CPLErr SetOffset(double)
Set scaling offset.
Definition: gdalrasterband.cpp:2461
virtual CPLErr GetHistogram(double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram, int bIncludeOutOfRange, int bApproxOK, GDALProgressFunc, void *pProgressData)
Compute raster histogram.
Definition: gdalrasterband.cpp:2881
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:2372
virtual CPLErr SetGCPs(int nGCPCount, const GDAL_GCP *pasGCPList, const char *pszGCPProjection)
Assign GCPs.
Definition: gdaldataset.cpp:1328
virtual CPLErr ComputeStatistics(int bApproxOK, double *pdfMin, double *pdfMax, double *pdfMean, double *pdfStdDev, GDALProgressFunc, void *pProgressData)
Compute image statistics.
Definition: gdalrasterband.cpp:3785
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:1872
virtual char ** GetCategoryNames()
Fetch the list of category names for this raster.
virtual CPLErr FlushCache()
Flush raster data cache.
Definition: gdalrasterband.cpp:913
virtual const GDAL_GCP * GetGCPs()
Fetch GCPs.
GIntBig GSpacing
Type to express pixel, line or band spacing.
Definition: gdal.h:245
virtual CPLErr SetDefaultHistogram(double dfMin, double dfMax, int nBuckets, GUIntBig *panHistogram)
Set default histogram.
Definition: gdalrasterband.cpp:4611
virtual CPLErr SetColorTable(GDALColorTable *)
Set the raster color table.
Definition: gdalrasterband.cpp:2090
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:1274
virtual CPLErr SetGeoTransform(double *)
Set the affine transformation coefficients.
Definition: gdaldataset.cpp:943
Public (C callable) GDAL entry points.
Definition: gdal_proxy.h:44
Definition: gdal_proxy.h:198
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:1198
Definition: gdal_proxy.h:310
virtual CPLErr SetNoDataValue(double)
Set the no data value for this band.
Definition: gdalrasterband.cpp:1732
virtual CPLErr ComputeRasterMinMax(int, double *)
Compute the min/max values for a band.
Definition: gdalrasterband.cpp:4265
virtual const char * GetUnitType()
Return raster unit type.
Definition: gdalrasterband.cpp:2607
Definition: gdal_proxy.h:335
virtual GDALColorTable * GetColorTable()
Fetch the color table associated with band.
Definition: gdalrasterband.cpp:2045
virtual char ** GetMetadata(const char *pszDomain)
Fetch metadata.
virtual CPLErr CreateMaskBand(int nFlagsIn)
Adds a mask band to the dataset.
Definition: gdaldataset.cpp:2269
virtual char ** GetFileList(void)
Fetch files forming dataset.
Definition: gdaldataset.cpp:2141
virtual void * GetInternalHandle(const char *)
Fetch a format specific internally meaningful handle.
Definition: gdaldataset.cpp:987
virtual const char * GetGCPProjection()
Get output projection for GCPs.
Definition: gdaldataset.cpp:1237
virtual CPLErr SetCategoryNames(char **)
Set the category names for this band.
Definition: gdalrasterband.cpp:1635
virtual int GetOverviewCount()
Return the number of overview layers available.
Definition: gdalrasterband.cpp:2176
virtual GDALRasterBand * GetMaskBand()
Return the mask band associated with the band.
virtual CPLErr SetUnitType(const char *)
Set unit type.
Definition: gdalrasterband.cpp:2651
A single raster band (or channel).
Definition: gdal_priv.h:611
GDALAccess
Definition: gdal.h:95
virtual CPLErr CreateMaskBand(int nFlagsIn)
Adds a mask band to the current band.
Definition: gdalrasterband.cpp:5092
A set of associated raster bands, usually from one file.
Definition: gdal_priv.h:276
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:4750
virtual GDALRasterBand * GetRasterSampleOverview(GUIntBig)
Fetch best sampling overview.
Definition: gdalrasterband.cpp:2269
virtual const char * GetMetadataItem(const char *pszName, const char *pszDomain)
Fetch single metadata item.
GDALColorInterp
Definition: gdal.h:170
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:259
virtual CPLErr GetStatistics(int bApproxOK, int bForce, double *pdfMin, double *pdfMax, double *pdfMean, double *padfStdDev)
Fetch image statistics.
Definition: gdalrasterband.cpp:3667
Format specific driver.
Definition: gdal_priv.h:877
Definition: gdal_priv.h:582
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:1441
virtual const char * GetProjectionRef(void)
Fetch the projection definition string for this dataset.
Ground Control Point.
Definition: gdal.h:442