00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef CPL_CONV_H_INCLUDED
00032 #define CPL_CONV_H_INCLUDED
00033
00034 #include "cpl_port.h"
00035 #include "cpl_vsi.h"
00036 #include "cpl_error.h"
00037
00045
00046
00047
00048 CPL_C_START
00049
00050 void CPL_DLL CPLVerifyConfiguration(void);
00051
00052 const char CPL_DLL * CPL_STDCALL
00053 CPLGetConfigOption( const char *, const char * );
00054 void CPL_DLL CPL_STDCALL CPLSetConfigOption( const char *, const char * );
00055 void CPL_DLL CPL_STDCALL CPLSetThreadLocalConfigOption( const char *pszKey,
00056 const char *pszValue );
00057 void CPL_DLL CPL_STDCALL CPLFreeConfig(void);
00058
00059
00060
00061
00062
00063 void CPL_DLL *CPLMalloc( size_t );
00064 void CPL_DLL *CPLCalloc( size_t, size_t );
00065 void CPL_DLL *CPLRealloc( void *, size_t );
00066 char CPL_DLL *CPLStrdup( const char * );
00067 char CPL_DLL *CPLStrlwr( char *);
00068
00069 #define CPLFree VSIFree
00070
00071
00072
00073
00074 char CPL_DLL *CPLFGets( char *, int, FILE *);
00075 const char CPL_DLL *CPLReadLine( FILE * );
00076 const char CPL_DLL *CPLReadLineL( FILE * );
00077 const char CPL_DLL *CPLReadLine2L( FILE * , int nMaxCols, char** papszOptions);
00078
00079
00080
00081
00082
00083 double CPL_DLL CPLAtof(const char *);
00084 double CPL_DLL CPLAtofDelim(const char *, char);
00085 double CPL_DLL CPLStrtod(const char *, char **);
00086 double CPL_DLL CPLStrtodDelim(const char *, char **, char);
00087 float CPL_DLL CPLStrtof(const char *, char **);
00088 float CPL_DLL CPLStrtofDelim(const char *, char **, char);
00089
00090
00091
00092
00093
00094 double CPL_DLL CPLAtofM(const char *);
00095
00096
00097
00098
00099 char CPL_DLL *CPLScanString( const char *, int, int, int );
00100 double CPL_DLL CPLScanDouble( const char *, int );
00101 long CPL_DLL CPLScanLong( const char *, int );
00102 unsigned long CPL_DLL CPLScanULong( const char *, int );
00103 GUIntBig CPL_DLL CPLScanUIntBig( const char *, int );
00104 void CPL_DLL *CPLScanPointer( const char *, int );
00105
00106
00107
00108
00109 int CPL_DLL CPLPrintString( char *, const char *, int );
00110 int CPL_DLL CPLPrintStringFill( char *, const char *, int );
00111 int CPL_DLL CPLPrintInt32( char *, GInt32 , int );
00112 int CPL_DLL CPLPrintUIntBig( char *, GUIntBig , int );
00113 int CPL_DLL CPLPrintDouble( char *, const char *, double, const char * );
00114 int CPL_DLL CPLPrintTime( char *, int , const char *, const struct tm *,
00115 const char * );
00116 int CPL_DLL CPLPrintPointer( char *, void *, int );
00117
00118
00119
00120
00121
00122 void CPL_DLL *CPLGetSymbol( const char *, const char * );
00123
00124
00125
00126
00127 int CPL_DLL CPLGetExecPath( char *pszPathBuf, int nMaxLength );
00128
00129
00130
00131
00132 const char CPL_DLL *CPLGetPath( const char * );
00133 const char CPL_DLL *CPLGetDirname( const char * );
00134 const char CPL_DLL *CPLGetFilename( const char * );
00135 const char CPL_DLL *CPLGetBasename( const char * );
00136 const char CPL_DLL *CPLGetExtension( const char * );
00137 char CPL_DLL *CPLGetCurrentDir(void);
00138 const char CPL_DLL *CPLFormFilename( const char *pszPath,
00139 const char *pszBasename,
00140 const char *pszExtension );
00141 const char CPL_DLL *CPLFormCIFilename( const char *pszPath,
00142 const char *pszBasename,
00143 const char *pszExtension );
00144 const char CPL_DLL *CPLResetExtension( const char *, const char * );
00145 const char CPL_DLL *CPLProjectRelativeFilename( const char *pszProjectDir,
00146 const char *pszSecondaryFilename );
00147 int CPL_DLL CPLIsFilenameRelative( const char *pszFilename );
00148 const char CPL_DLL *CPLExtractRelativePath(const char *, const char *, int *);
00149 const char CPL_DLL *CPLCleanTrailingSlash( const char * );
00150 char CPL_DLL **CPLCorrespondingPaths( const char *pszOldFilename,
00151 const char *pszNewFilename,
00152 char **papszFileList );
00153 int CPL_DLL CPLCheckForFile( char *pszFilename, char **papszSiblingList );
00154
00155 const char CPL_DLL *CPLGenerateTempFilename( const char *pszStem );
00156
00157
00158
00159
00160 typedef const char *(*CPLFileFinder)(const char *, const char *);
00161
00162 const char CPL_DLL *CPLFindFile(const char *pszClass,
00163 const char *pszBasename);
00164 const char CPL_DLL *CPLDefaultFindFile(const char *pszClass,
00165 const char *pszBasename);
00166 void CPL_DLL CPLPushFileFinder( CPLFileFinder pfnFinder );
00167 CPLFileFinder CPL_DLL CPLPopFileFinder(void);
00168 void CPL_DLL CPLPushFinderLocation( const char * );
00169 void CPL_DLL CPLPopFinderLocation(void);
00170 void CPL_DLL CPLFinderClean(void);
00171
00172
00173
00174
00175 int CPL_DLL CPLStat( const char *, VSIStatBuf * );
00176
00177
00178
00179
00180
00181 typedef struct {
00182 FILE *fp;
00183 int nRefCount;
00184 int bLarge;
00185 char *pszFilename;
00186 char *pszAccess;
00187 } CPLSharedFileInfo;
00188
00189 FILE CPL_DLL *CPLOpenShared( const char *, const char *, int );
00190 void CPL_DLL CPLCloseShared( FILE * );
00191 CPLSharedFileInfo CPL_DLL *CPLGetSharedList( int * );
00192 void CPL_DLL CPLDumpSharedList( FILE * );
00193
00194
00195
00196
00197 double CPL_DLL CPLDMSToDec( const char *is );
00198 const char CPL_DLL *CPLDecToDMS( double dfAngle, const char * pszAxis,
00199 int nPrecision );
00200 double CPL_DLL CPLPackedDMSToDec( double );
00201 double CPL_DLL CPLDecToPackedDMS( double dfDec );
00202
00203 void CPL_DLL CPLStringToComplex( const char *pszString,
00204 double *pdfReal, double *pdfImag );
00205
00206
00207
00208
00209 int CPL_DLL CPLUnlinkTree( const char * );
00210 int CPL_DLL CPLCopyFile( const char *pszNewPath, const char *pszOldPath );
00211 int CPL_DLL CPLMoveFile( const char *pszNewPath, const char *pszOldPath );
00212
00213 CPL_C_END
00214
00215
00216
00217
00218
00219 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
00220
00221 class CPLLocaleC
00222 {
00223 public:
00224 CPLLocaleC();
00225 ~CPLLocaleC();
00226
00227 private:
00228 char *pszOldLocale;
00229
00230
00231 CPLLocaleC(CPLLocaleC&);
00232 CPLLocaleC& operator=(CPLLocaleC&);
00233 };
00234
00235 #endif
00236
00237
00238 #endif