- Main Page
- Classes
- Files
- Related Pages

- File List
- File Members

# gdal_priv.h

    00001 /******************************************************************************
    00002  * $Id: gdal_priv.h 10646 2007-01-18 02:38:10Z warmerdam $
    00003  *
    00004  * Name:     gdal_priv.h
    00005  * Project:  GDAL Core
    00006  * Purpose:  GDAL Core C++/Private declarations.
    00007  * Author:   Frank Warmerdam, warmerdam@pobox.com
    00008  *
    00009  ******************************************************************************
    00010  * Copyright (c) 1998, Frank Warmerdam
    00011  *
    00012  * Permission is hereby granted, free of charge, to any person obtaining a
    00013  * copy of this software and associated documentation files (the "Software"),
    00014  * to deal in the Software without restriction, including without limitation
    00015  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
    00016  * and/or sell copies of the Software, and to permit persons to whom the
    00017  * Software is furnished to do so, subject to the following conditions:
    00018  *
    00019  * The above copyright notice and this permission notice shall be included
    00020  * in all copies or substantial portions of the Software.
    00021  *
    00022  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    00023  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    00024  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    00025  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    00026  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    00027  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    00028  * DEALINGS IN THE SOFTWARE.
    00029  ****************************************************************************/
    00030
    00031 #ifndef GDAL_PRIV_H_INCLUDED
    00032 #define GDAL_PRIV_H_INCLUDED
    00033
    00034 /* -------------------------------------------------------------------- */
    00035 /*      Predeclare various classes before pulling in gdal.h, the        */
    00036 /*      public declarations.                                            */
    00037 /* -------------------------------------------------------------------- */
    00038 class GDALMajorObject;
    00039 class GDALDataset;
    00040 class GDALRasterBand;
    00041 class GDALDriver;
    00042 class GDALRasterAttributeTable;
    00043
    00044 /* -------------------------------------------------------------------- */
    00045 /*      Pull in the public declarations.  This gets the C apis, and     */
    00046 /*      also various constants.  However, we will still get to          */
    00047 /*      provide the real class definitions for the GDAL classes.        */
    00048 /* -------------------------------------------------------------------- */
    00049
    00050 #include "gdal.h"
    00051 #include "gdal_frmts.h"
    00052 #include "cpl_vsi.h"
    00053 #include "cpl_conv.h"
    00054 #include "cpl_string.h"
    00055 #include "cpl_minixml.h"
    00056 #include <vector>
    00057
    00058 #define GMO_VALID                0x0001
    00059 #define GMO_IGNORE_UNIMPLEMENTED 0x0002
    00060 #define GMO_SUPPORT_MD           0x0004
    00061 #define GMO_SUPPORT_MDMD         0x0008
    00062 #define GMO_MD_DIRTY             0x0010
    00063 #define GMO_PAM_CLASS            0x0020
    00064
    00065 /************************************************************************/
    00066 /*                       GDALMultiDomainMetadata                        */
    00067 /************************************************************************/
    00068
    00069 class CPL_DLL GDALMultiDomainMetadata
    00070 {
    00071 private:
    00072     char **papszDomainList;
    00073     char ***papapszMetadataLists;
    00074
    00075 public:
    00076     GDALMultiDomainMetadata();
    00077     ~GDALMultiDomainMetadata();
    00078
    00079     int         XMLInit( CPLXMLNode *psMetadata, int bMerge );
    00080     CPLXMLNode  *Serialize();
    00081
    00082     char      **GetDomainList() { return papszDomainList; }
    00083
    00084     char      **GetMetadata( const char * pszDomain = "" );
    00085     CPLErr      SetMetadata( char ** papszMetadata,
    00086                              const char * pszDomain = "" );
    00087     const char *GetMetadataItem( const char * pszName,
    00088                                  const char * pszDomain = "" );
    00089     CPLErr      SetMetadataItem( const char * pszName,
    00090                                  const char * pszValue,
    00091                                  const char * pszDomain = "" );
    00092
    00093     void        Clear();
    00094 };
    00095
    00096 /* ******************************************************************** */
    00097 /*                           GDALMajorObject                            */
    00098 /*                                                                      */
    00099 /*      Base class providing metadata, description and other            */
    00100 /*      services shared by major objects.                               */
    00101 /* ******************************************************************** */
    00102
    00104
    00105 class CPL_DLL GDALMajorObject
    00106 {
    00107   protected:
    00108     int                 nFlags; // GMO_* flags.
    00109     CPLString           sDescription;
    00110     GDALMultiDomainMetadata oMDMD;
    00111
    00112   public:
    00113                         GDALMajorObject();
    00114     virtual            ~GDALMajorObject();
    00115
    00116     int                 GetMOFlags();
    00117     void                SetMOFlags(int nFlags);
    00118
    00119     virtual const char *GetDescription() const;
    00120     virtual void        SetDescription( const char * );
    00121
    00122     virtual char      **GetMetadata( const char * pszDomain = "" );
    00123     virtual CPLErr      SetMetadata( char ** papszMetadata,
    00124                                      const char * pszDomain = "" );
    00125     virtual const char *GetMetadataItem( const char * pszName,
    00126                                          const char * pszDomain = "" );
    00127     virtual CPLErr      SetMetadataItem( const char * pszName,
    00128                                          const char * pszValue,
    00129                                          const char * pszDomain = "" );
    00130 };
    00131
    00132 /* ******************************************************************** */
    00133 /*                         GDALDefaultOverviews                         */
    00134 /* ******************************************************************** */
    00135 class CPL_DLL GDALDefaultOverviews
    00136 {
    00137     GDALDataset *poDS;
    00138     GDALDataset *poODS;
    00139
    00140     CPLString  osOvrFilename;
    00141
    00142     int        bOvrIsAux;
    00143
    00144   public:
    00145                GDALDefaultOverviews();
    00146                ~GDALDefaultOverviews();
    00147
    00148     void       Initialize( GDALDataset *poDS, const char *pszName = NULL,
    00149                            int bNameIsOVR = FALSE );
    00150     int        IsInitialized() { return poDS != NULL; }
    00151
    00152     int        GetOverviewCount(int);
    00153     GDALRasterBand *GetOverview(int,int);
    00154
    00155     CPLErr     BuildOverviews( const char * pszBasename,
    00156                                const char * pszResampling,
    00157                                int nOverviews, int * panOverviewList,
    00158                                int nBands, int * panBandList,
    00159                                GDALProgressFunc pfnProgress,
    00160                                void *pProgressData );
    00161 };
    00162
    00163 /* ******************************************************************** */
    00164 /*                             GDALDataset                              */
    00165 /* ******************************************************************** */
    00166
    00168
    00169 class CPL_DLL GDALDataset : public GDALMajorObject
    00170 {
    00171     friend GDALDatasetH CPL_STDCALL GDALOpen( const char *, GDALAccess);
    00172     friend GDALDatasetH CPL_STDCALL GDALOpenShared( const char *, GDALAccess);
    00173     friend class GDALDriver;
    00174
    00175   protected:
    00176     GDALDriver  *poDriver;
    00177     GDALAccess  eAccess;
    00178
    00179     // Stored raster information.
    00180     int         nRasterXSize;
    00181     int         nRasterYSize;
    00182     int         nBands;
    00183     GDALRasterBand **papoBands;
    00184
    00185     int         bForceCachedIO;
    00186
    00187     int         nRefCount;
    00188     int         bShared;
    00189
    00190                 GDALDataset(void);
    00191     void        RasterInitialize( int, int );
    00192     void        SetBand( int, GDALRasterBand * );
    00193
    00194     GDALDefaultOverviews oOvManager;
    00195
    00196     virtual CPLErr IBuildOverviews( const char *, int, int *,
    00197                                     int, int *, GDALProgressFunc, void * );
    00198
    00199     virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
    00200                               void *, int, int, GDALDataType,
    00201                               int, int *, int, int, int );
    00202
    00203     CPLErr BlockBasedRasterIO( GDALRWFlag, int, int, int, int,
    00204                                void *, int, int, GDALDataType,
    00205                                int, int *, int, int, int );
    00206     void   BlockBasedFlushCache();
    00207
    00208     friend class GDALRasterBand;
    00209
    00210   public:
    00211     virtual     ~GDALDataset();
    00212
    00213     int         GetRasterXSize( void );
    00214     int         GetRasterYSize( void );
    00215     int         GetRasterCount( void );
    00216     GDALRasterBand *GetRasterBand( int );
    00217
    00218     virtual void FlushCache(void);
    00219
    00220     virtual const char *GetProjectionRef(void);
    00221     virtual CPLErr SetProjection( const char * );
    00222
    00223     virtual CPLErr GetGeoTransform( double * );
    00224     virtual CPLErr SetGeoTransform( double * );
    00225
    00226     virtual CPLErr        AddBand( GDALDataType eType,
    00227                                    char **papszOptions=NULL );
    00228
    00229     virtual void *GetInternalHandle( const char * );
    00230     virtual GDALDriver *GetDriver(void);
    00231
    00232     virtual int    GetGCPCount();
    00233     virtual const char *GetGCPProjection();
    00234     virtual const GDAL_GCP *GetGCPs();
    00235     virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList,
    00236                             const char *pszGCPProjection );
    00237
    00238     virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
    00239                                int nBufXSize, int nBufYSize,
    00240                                GDALDataType eDT,
    00241                                int nBandCount, int *panBandList,
    00242                                char **papszOptions );
    00243
    00244     CPLErr      RasterIO( GDALRWFlag, int, int, int, int,
    00245                           void *, int, int, GDALDataType,
    00246                           int, int *, int, int, int );
    00247
    00248     int           Reference();
    00249     int           Dereference();
    00250     GDALAccess    GetAccess() { return eAccess; }
    00251
    00252     int           GetShared();
    00253     void          MarkAsShared();
    00254
    00255     static GDALDataset **GetOpenDatasets( int *pnDatasetCount );
    00256
    00257     CPLErr BuildOverviews( const char *, int, int *,
    00258                            int, int *, GDALProgressFunc, void * );
    00259 };
    00260
    00261 /* ******************************************************************** */
    00262 /*                           GDALRasterBlock                            */
    00263 /* ******************************************************************** */
    00264
    00267 class CPL_DLL GDALRasterBlock
    00268 {
    00269     GDALDataType        eType;
    00270
    00271     int                 bDirty;
    00272     int                 nLockCount;
    00273
    00274     int                 nXOff;
    00275     int                 nYOff;
    00276
    00277     int                 nXSize;
    00278     int                 nYSize;
    00279
    00280     void                *pData;
    00281
    00282     GDALRasterBand      *poBand;
    00283
    00284     GDALRasterBlock     *poNext;
    00285     GDALRasterBlock     *poPrevious;
    00286
    00287   public:
    00288                 GDALRasterBlock( GDALRasterBand *, int, int );
    00289     virtual     ~GDALRasterBlock();
    00290
    00291     CPLErr      Internalize( void );    /* make copy of data */
    00292     void        Touch( void );          /* update age */
    00293     void        MarkDirty( void );      /* data has been modified since read */
    00294     void        MarkClean( void );
    00295     void        AddLock( void ) { nLockCount++; }
    00296     void        DropLock( void ) { nLockCount--; }
    00297     void        Detach();
    00298
    00299     CPLErr      Write();
    00300
    00301     GDALDataType GetDataType() { return eType; }
    00302     int         GetXOff() { return nXOff; }
    00303     int         GetYOff() { return nYOff; }
    00304     int         GetXSize() { return nXSize; }
    00305     int         GetYSize() { return nYSize; }
    00306     int         GetDirty() { return bDirty; }
    00307     int         GetLockCount() { return nLockCount; }
    00308
    00309     void        *GetDataRef( void ) { return pData; }
    00310
    00311     GDALRasterBand *GetBand() { return poBand; }
    00312
    00313     static int  FlushCacheBlock();
    00314     static void Verify();
    00315
    00316     static int  SafeLockBlock( GDALRasterBlock ** );
    00317 };
    00318
    00319 /* ******************************************************************** */
    00320 /*                             GDALColorTable                           */
    00321 /* ******************************************************************** */
    00322
    00323 class CPL_DLL GDALColorTable
    00324 {
    00325     GDALPaletteInterp eInterp;
    00326
    00327     std::vector<GDALColorEntry> aoEntries;
    00328
    00329 public:
    00330                 GDALColorTable( GDALPaletteInterp = GPI_RGB );
    00331                 ~GDALColorTable();
    00332
    00333     GDALColorTable *Clone() const;
    00334
    00335     GDALPaletteInterp GetPaletteInterpretation() const;
    00336
    00337     int           GetColorEntryCount() const;
    00338     const GDALColorEntry *GetColorEntry( int ) const;
    00339     int           GetColorEntryAsRGB( int, GDALColorEntry * ) const;
    00340     void          SetColorEntry( int, const GDALColorEntry * );
    00341 };
    00342
    00343 /* ******************************************************************** */
    00344 /*                            GDALRasterBand                            */
    00345 /* ******************************************************************** */
    00346
    00348
    00349 class CPL_DLL GDALRasterBand : public GDALMajorObject
    00350 {
    00351   protected:
    00352     GDALDataset *poDS;
    00353     int         nBand; /* 1 based */
    00354
    00355     int         nRasterXSize;
    00356     int         nRasterYSize;
    00357
    00358     GDALDataType eDataType;
    00359     GDALAccess  eAccess;
    00360
    00361     /* stuff related to blocking, and raster cache */
    00362     int         nBlockXSize;
    00363     int         nBlockYSize;
    00364     int         nBlocksPerRow;
    00365     int         nBlocksPerColumn;
    00366
    00367     int         bSubBlockingActive;
    00368     int         nSubBlocksPerRow;
    00369     int         nSubBlocksPerColumn;
    00370     GDALRasterBlock **papoBlocks;
    00371
    00372     int         nBlockReads;
    00373     int         bForceCachedIO;
    00374
    00375     friend class GDALDataset;
    00376     friend class GDALRasterBlock;
    00377
    00378   protected:
    00379     virtual CPLErr IReadBlock( int, int, void * ) = 0;
    00380     virtual CPLErr IWriteBlock( int, int, void * );
    00381     virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int,
    00382                               void *, int, int, GDALDataType,
    00383                               int, int );
    00384     CPLErr         OverviewRasterIO( GDALRWFlag, int, int, int, int,
    00385                                      void *, int, int, GDALDataType,
    00386                                      int, int );
    00387
    00388     int            InitBlockInfo();
    00389
    00390     CPLErr         AdoptBlock( int, int, GDALRasterBlock * );
    00391     GDALRasterBlock *TryGetLockedBlockRef( int nXBlockOff, int nYBlockYOff );
    00392
    00393   public:
    00394                 GDALRasterBand();
    00395
    00396     virtual     ~GDALRasterBand();
    00397
    00398     int         GetXSize();
    00399     int         GetYSize();
    00400     int         GetBand();
    00401     GDALDataset*GetDataset();
    00402
    00403     GDALDataType GetRasterDataType( void );
    00404     void        GetBlockSize( int *, int * );
    00405     GDALAccess  GetAccess();
    00406
    00407     CPLErr      RasterIO( GDALRWFlag, int, int, int, int,
    00408                           void *, int, int, GDALDataType,
    00409                           int, int );
    00410     CPLErr      ReadBlock( int, int, void * );
    00411
    00412     CPLErr      WriteBlock( int, int, void * );
    00413
    00414     GDALRasterBlock *GetLockedBlockRef( int nXBlockOff, int nYBlockOff,
    00415                                         int bJustInitialize = FALSE );
    00416     CPLErr      FlushBlock( int = -1, int = -1 );
    00417
    00418     // New OpengIS CV_SampleDimension stuff.
    00419
    00420     virtual CPLErr FlushCache();
    00421     virtual char **GetCategoryNames();
    00422     virtual double GetNoDataValue( int *pbSuccess = NULL );
    00423     virtual double GetMinimum( int *pbSuccess = NULL );
    00424     virtual double GetMaximum(int *pbSuccess = NULL );
    00425     virtual double GetOffset( int *pbSuccess = NULL );
    00426     virtual double GetScale( int *pbSuccess = NULL );
    00427     virtual const char *GetUnitType();
    00428     virtual GDALColorInterp GetColorInterpretation();
    00429     virtual GDALColorTable *GetColorTable();
    00430     virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue = 0);
    00431
    00432     virtual CPLErr SetCategoryNames( char ** );
    00433     virtual CPLErr SetNoDataValue( double );
    00434     virtual CPLErr SetColorTable( GDALColorTable * );
    00435     virtual CPLErr SetColorInterpretation( GDALColorInterp );
    00436     virtual CPLErr SetOffset( double );
    00437     virtual CPLErr SetScale( double );
    00438     virtual CPLErr SetUnitType( const char * );
    00439
    00440     virtual CPLErr GetStatistics( int bApproxOK, int bForce,
    00441                                   double *pdfMin, double *pdfMax,
    00442                                   double *pdfMean, double *padfStdDev );
    00443     virtual CPLErr ComputeStatistics( int bApproxOK,
    00444                                       double *pdfMin, double *pdfMax,
    00445                                       double *pdfMean, double *padfStdDev,
    00446                                       GDALProgressFunc, void *pProgressData );
    00447     virtual CPLErr SetStatistics( double dfMin, double dfMax,
    00448                                   double dfMean, double dfStdDev );
    00449
    00450     virtual int HasArbitraryOverviews();
    00451     virtual int GetOverviewCount();
    00452     virtual GDALRasterBand *GetOverview(int);
    00453     virtual CPLErr BuildOverviews( const char *, int, int *,
    00454                                    GDALProgressFunc, void * );
    00455
    00456     virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize,
    00457                                int nBufXSize, int nBufYSize,
    00458                                GDALDataType eDT, char **papszOptions );
    00459
    00460     virtual CPLErr  GetHistogram( double dfMin, double dfMax,
    00461                           int nBuckets, int * panHistogram,
    00462                           int bIncludeOutOfRange, int bApproxOK,
    00463                           GDALProgressFunc, void *pProgressData );
    00464
    00465     virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax,
    00466                                         int *pnBuckets, int ** ppanHistogram,
    00467                                         int bForce,
    00468                                         GDALProgressFunc, void *pProgressData);
    00469     virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax,
    00470                                         int nBuckets, int *panHistogram );
    00471
    00472     virtual const GDALRasterAttributeTable *GetDefaultRAT();
    00473     virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * );
    00474 };
    00475
    00476 /* ******************************************************************** */
    00477 /*                             GDALOpenInfo                             */
    00478 /*                                                                      */
    00479 /*      Structure of data about dataset for open functions.             */
    00480 /* ******************************************************************** */
    00481
    00482 class CPL_DLL GDALOpenInfo
    00483 {
    00484   public:
    00485
    00486                 GDALOpenInfo( const char * pszFile, GDALAccess eAccessIn );
    00487                 ~GDALOpenInfo( void );
    00488
    00489     char        *pszFilename;
    00490
    00491     GDALAccess  eAccess;
    00492
    00493     int         bStatOK;
    00494     int         bIsDirectory;
    00495
    00496     FILE        *fp;
    00497
    00498     int         nHeaderBytes;
    00499     GByte       *pabyHeader;
    00500
    00501 };
    00502
    00503 /* ******************************************************************** */
    00504 /*                              GDALDriver                              */
    00505 /* ******************************************************************** */
    00506
    00507
    00519 class CPL_DLL GDALDriver : public GDALMajorObject
    00520 {
    00521   public:
    00522                         GDALDriver();
    00523                         ~GDALDriver();
    00524
    00525 /* -------------------------------------------------------------------- */
    00526 /*      Public C++ methods.                                             */
    00527 /* -------------------------------------------------------------------- */
    00528     GDALDataset         *Create( const char * pszName,
    00529                                  int nXSize, int nYSize, int nBands,
    00530                                  GDALDataType eType, char ** papszOptions );
    00531
    00532     CPLErr              Delete( const char * pszName );
    00533
    00534     GDALDataset         *CreateCopy( const char *, GDALDataset *,
    00535                                      int, char **,
    00536                                      GDALProgressFunc pfnProgress,
    00537                                      void * pProgressData );
    00538
    00539     GDALDataset         *DefaultCreateCopy( const char *, GDALDataset *,
    00540                                             int, char **,
    00541                                             GDALProgressFunc pfnProgress,
    00542                                             void * pProgressData );
    00543
    00544 /* -------------------------------------------------------------------- */
    00545 /*      The following are semiprivate, not intended to be accessed      */
    00546 /*      by anyone but the formats instantiating and populating the      */
    00547 /*      drivers.                                                        */
    00548 /* -------------------------------------------------------------------- */
    00549     GDALDataset         *(*pfnOpen)( GDALOpenInfo * );
    00550
    00551     GDALDataset         *(*pfnCreate)( const char * pszName,
    00552                                        int nXSize, int nYSize, int nBands,
    00553                                        GDALDataType eType,
    00554                                        char ** papszOptions );
    00555
    00556     CPLErr              (*pfnDelete)( const char * pszName );
    00557
    00558     GDALDataset         *(*pfnCreateCopy)( const char *, GDALDataset *,
    00559                                            int, char **,
    00560                                            GDALProgressFunc pfnProgress,
    00561                                            void * pProgressData );
    00562
    00563     void                *pDriverData;
    00564
    00565     void                (*pfnUnloadDriver)(GDALDriver *);
    00566 };
    00567
    00568 /* ******************************************************************** */
    00569 /*                          GDALDriverManager                           */
    00570 /* ******************************************************************** */
    00571
    00579 class CPL_DLL GDALDriverManager : public GDALMajorObject
    00580 {
    00581     int         nDrivers;
    00582     GDALDriver  **papoDrivers;
    00583
    00584     char        *pszHome;
    00585
    00586  public:
    00587                 GDALDriverManager();
    00588                 ~GDALDriverManager();
    00589
    00590     int         GetDriverCount( void );
    00591     GDALDriver  *GetDriver( int );
    00592     GDALDriver  *GetDriverByName( const char * );
    00593
    00594     int         RegisterDriver( GDALDriver * );
    00595     void        MoveDriver( GDALDriver *, int );
    00596     void        DeregisterDriver( GDALDriver * );
    00597
    00598     void        AutoLoadDrivers();
    00599     void        AutoSkipDrivers();
    00600
    00601     const char *GetHome();
    00602     void        SetHome( const char * );
    00603 };
    00604
    00605 CPL_C_START
    00606 GDALDriverManager CPL_DLL * GetGDALDriverManager( void );
    00607 CPL_C_END
    00608
    00609 /* ==================================================================== */
    00610 /*      An assortment of overview related stuff.                        */
    00611 /* ==================================================================== */
    00612
    00613 CPL_C_START
    00614
    00615 #ifndef WIN32CE
    00616
    00617 CPLErr CPL_DLL
    00618 HFAAuxBuildOverviews( const char *pszOvrFilename, GDALDataset *poParentDS,
    00619                       GDALDataset **ppoDS,
    00620                       int nBands, int *panBandList,
    00621                       int nNewOverviews, int *panNewOverviewList,
    00622                       const char *pszResampling,
    00623                       GDALProgressFunc pfnProgress,
    00624                       void *pProgressData );
    00625
    00626 #endif /* WIN32CE */
    00627
    00628 CPLErr CPL_DLL
    00629 GTIFFBuildOverviews( const char * pszFilename,
    00630                      int nBands, GDALRasterBand **papoBandList,
    00631                      int nOverviews, int * panOverviewList,
    00632                      const char * pszResampling,
    00633                      GDALProgressFunc pfnProgress, void * pProgressData );
    00634
    00635 CPLErr CPL_DLL
    00636 GDALDefaultBuildOverviews( GDALDataset *hSrcDS, const char * pszBasename,
    00637                            const char * pszResampling,
    00638                            int nOverviews, int * panOverviewList,
    00639                            int nBands, int * panBandList,
    00640                            GDALProgressFunc pfnProgress, void * pProgressData);
    00641
    00642
    00643 CPLErr CPL_DLL
    00644 GDALRegenerateOverviews( GDALRasterBand *, int, GDALRasterBand **,
    00645                          const char *, GDALProgressFunc, void * );
    00646
    00647 int CPL_DLL GDALOvLevelAdjust( int nOvLevel, int nXSize );
    00648
    00649 GDALDataset CPL_DLL *
    00650 GDALFindAssociatedAuxFile( const char *pszBasefile, GDALAccess eAccess );
    00651
    00652 /* ==================================================================== */
    00653 /*      Misc functions.                                                 */
    00654 /* ==================================================================== */
    00655
    00656 CPLErr CPL_DLL GDALParseGMLCoverage( CPLXMLNode *psTree,
    00657                                      int *pnXSize, int *pnYSize,
    00658                                      double *padfGeoTransform,
    00659                                      char **ppszProjection );
    00660
    00661 CPL_C_END
    00662
    00663 #endif /* ndef GDAL_PRIV_H_INCLUDED */

Generated for GDAL by 1.5.1.