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 *,
52 virtual CPLErr IRasterIO(
GDALRWFlag,
int,
int,
int,
int,
54 int,
int *,
int,
int,
int );
57 virtual char **
GetMetadata(
const char * pszDomain );
59 const char * pszDomain );
61 const char * pszDomain );
63 const char * pszValue,
64 const char * pszDomain );
82 const char *pszGCPProjection );
84 virtual CPLErr
AdviseRead(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
85 int nBufXSize,
int nBufYSize,
87 int nBandCount,
int *panBandList,
88 char **papszOptions );
102 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
104 virtual CPLErr IReadBlock(
int,
int,
void * );
105 virtual CPLErr IWriteBlock(
int,
int,
void * );
106 virtual CPLErr IRasterIO(
GDALRWFlag,
int,
int,
int,
int,
112 virtual char **
GetMetadata(
const char * pszDomain );
114 const char * pszDomain );
116 const char * pszDomain );
118 const char * pszValue,
119 const char * pszDomain );
123 virtual double GetMinimum(
int *pbSuccess = NULL );
124 virtual double GetMaximum(
int *pbSuccess = NULL );
125 virtual double GetOffset(
int *pbSuccess = NULL );
126 virtual double GetScale(
int *pbSuccess = NULL );
130 virtual CPLErr
Fill(
double dfRealValue,
double dfImaginaryValue = 0);
141 double *pdfMin,
double *pdfMax,
142 double *pdfMean,
double *padfStdDev );
144 double *pdfMin,
double *pdfMax,
145 double *pdfMean,
double *pdfStdDev,
148 double dfMean,
double dfStdDev );
158 virtual CPLErr
AdviseRead(
int nXOff,
int nYOff,
int nXSize,
int nYSize,
159 int nBufXSize,
int nBufYSize,
162 virtual CPLErr
GetHistogram(
double dfMin,
double dfMax,
163 int nBuckets,
int * panHistogram,
164 int bIncludeOutOfRange,
int bApproxOK,
168 int *pnBuckets,
int ** ppanHistogram,
172 int nBuckets,
int *panHistogram );
194 GIntBig responsiblePID;
196 char *pszProjectionRef;
197 double adfGeoTransform[6];
198 int bHasSrcProjection;
199 int bHasSrcGeoTransform;
200 char *pszGCPProjection;
210 virtual void UnrefUnderlyingDataset(
GDALDataset* poUnderlyingDataset);
216 int nRasterXSize,
int nRasterYSize,
219 const char * pszProjectionRef = NULL,
220 double * padfGeoTransform = NULL);
223 void AddSrcBandDescription(
GDALDataType eDataType,
int nBlockXSize,
int nBlockYSize);
234 virtual char **
GetMetadata(
const char * pszDomain );
236 const char * pszDomain );
257 char **papszCategoryNames;
260 int nSizeProxyOverviewRasterBand;
268 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
276 int nBlockXSize,
int nBlockYSize);
281 void AddSrcMaskBandDescription(
GDALDataType eDataType,
int nBlockXSize,
int nBlockYSize);
286 virtual char **
GetMetadata(
const char * pszDomain );
288 const char * pszDomain );
309 int nRefCountUnderlyingMainRasterBand;
313 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
333 int nRefCountUnderlyingMainRasterBand;
337 virtual void UnrefUnderlyingRasterBand(
GDALRasterBand* poUnderlyingRasterBand);
346 int nBlockXSize,
int nBlockYSize);
360 typedef struct GDALProxyPoolDatasetHS *GDALProxyPoolDatasetH;
362 GDALProxyPoolDatasetH CPL_DLL GDALProxyPoolDatasetCreate(
const char* pszSourceDatasetDescription,
363 int nRasterXSize,
int nRasterYSize,
365 const char * pszProjectionRef,
366 double * padfGeoTransform);
368 void CPL_DLL GDALProxyPoolDatasetDelete(GDALProxyPoolDatasetH hProxyPoolDataset);
370 void CPL_DLL GDALProxyPoolDatasetAddSrcBandDescription( GDALProxyPoolDatasetH hProxyPoolDataset,
372 int nBlockXSize,
int nBlockYSize);