Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

cpl_vsi.h File Reference

Standard C Covers. More...

#include "cpl_port.h"
#include <unistd.h>
#include <sys/stat.h>

Go to the source code of this file.


Defines

#define  vsi_l_offset   long
#define  VSIFOpenL   VSIFOpen
#define  VSIFCloseL   VSIFClose
#define  VSIFSeekL   VSIFSeek
#define  VSIFTellL   VSIFTell
#define  VSIFRewindL   VSIFRewind
#define  VSIFReadL   VSIFRead
#define  VSIFWriteL   VSIFWrite
#define  VSIFEofL   VSIFEof
#define  VSIFFlushL   VSIFFlush
#define  VSI_ISLNK(x)   S_ISLNK(x)
#define  VSI_ISREG(x)   S_ISREG(x)
#define  VSI_ISDIR(x)   S_ISDIR(x)
#define  VSI_ISCHR(x)   S_ISCHR(x)
#define  VSI_ISBLK(x)   S_ISBLK(x)

Typedefs

typedef struct stat  VSIStatBuf

Functions

CPL_C_START FILE CPL_DLL*  VSIFOpen (const char *, const char *)
int CPL_DLL  VSIFClose (FILE *)
int CPL_DLL  VSIFSeek (FILE *, long, int)
long CPL_DLL  VSIFTell (FILE *)
void CPL_DLL  VSIRewind (FILE *)
void CPL_DLL  VSIFFlush (FILE *)
size_t CPL_DLL  VSIFRead (void *, size_t, size_t, FILE *)
size_t CPL_DLL  VSIFWrite (void *, size_t, size_t, FILE *)
char CPL_DLL*  VSIFGets (char *, int, FILE *)
int CPL_DLL  VSIFPuts (const char *, FILE *)
int CPL_DLL  VSIFPrintf (FILE *, const char *,...)
int CPL_DLL  VSIFGetc (FILE *)
int CPL_DLL  VSIFPutc (int, FILE *)
int CPL_DLL  VSIUngetc (int, FILE *)
int CPL_DLL  VSIFEof (FILE *)
int CPL_DLL  VSIStat (const char *, VSIStatBuf *)
void CPL_DLL*  VSICalloc (size_t, size_t)
void CPL_DLL*  VSIMalloc (size_t)
void CPL_DLL  VSIFree (void *)
void CPL_DLL*  VSIRealloc (void *, size_t)
char CPL_DLL*  VSIStrdup (const char *)
int CPL_DLL  VSIMkdir (const char *pathname, long mode)
int CPL_DLL  VSIRmdir (const char *pathname)
int CPL_DLL  VSIUnlink (const char *pathname)

Detailed Description

Standard C Covers.

The VSI functions are intended to be hookable aliases for Standard C I/O, memory allocation and other system functions. They are intended to allow virtualization of disk I/O so that non file data sources can be made to appear as files, and so that additional error trapping and reporting can be interested. The memory access API is aliased so that special application memory management services can be used.

Is is intended that each of these functions retains exactly the same calling pattern as the original Standard C functions they relate to. This means we don't have to provide custom documentation, and also means that the default implementation is very simple.

Definition in file cpl_vsi.h.


Define Documentation

#define VSIFCloseL   VSIFClose
 

Definition at line 159 of file cpl_vsi.h.

#define VSIFEofL   VSIFEof
 

Definition at line 165 of file cpl_vsi.h.

#define VSIFFlushL   VSIFFlush
 

Definition at line 166 of file cpl_vsi.h.

#define VSIFOpenL   VSIFOpen
 

Definition at line 158 of file cpl_vsi.h.

#define VSIFReadL   VSIFRead
 

Definition at line 163 of file cpl_vsi.h.

#define VSIFRewindL   VSIFRewind
 

Definition at line 162 of file cpl_vsi.h.

#define VSIFSeekL   VSIFSeek
 

Definition at line 160 of file cpl_vsi.h.

#define VSIFTellL   VSIFTell
 

Definition at line 161 of file cpl_vsi.h.

#define VSIFWriteL   VSIFWrite
 

Definition at line 164 of file cpl_vsi.h.

#define VSI_ISBLK( x )   S_ISBLK(x)
 

Definition at line 188 of file cpl_vsi.h.

#define VSI_ISCHR( x )   S_ISCHR(x)
 

Definition at line 187 of file cpl_vsi.h.

#define VSI_ISDIR( x )   S_ISDIR(x)
 

Definition at line 186 of file cpl_vsi.h.

#define VSI_ISLNK( x )   S_ISLNK(x)
 

Definition at line 184 of file cpl_vsi.h.

#define VSI_ISREG( x )   S_ISREG(x)
 

Definition at line 185 of file cpl_vsi.h.

typedef long vsi_l_offset   long
 

Definition at line 156 of file cpl_vsi.h.


Typedef Documentation

typedef struct stat VSIStatBuf
 

Definition at line 174 of file cpl_vsi.h.


Function Documentation

void CPL_DLL* VSICalloc ( size_t nCount,
size_t nSize )
 

Definition at line 251 of file cpl_vsisimple.cpp.

00253 {
00254     return( calloc( nCount, nSize ) );
00255 }

int CPL_DLL VSIFClose ( FILE * fp )
 

Definition at line 100 of file cpl_vsisimple.cpp.

00102 {
00103     return( fclose(fp) );
00104 }

int CPL_DLL VSIFEof ( FILE * fp )
 

Definition at line 221 of file cpl_vsisimple.cpp.

00223 {
00224     return( feof( fp ) );
00225 }

void CPL_DLL VSIFFlush ( FILE * fp )
 

Definition at line 160 of file cpl_vsisimple.cpp.

00162 {
00163     fflush( fp );
00164 }

int CPL_DLL VSIFGetc ( FILE * fp )
 

Definition at line 180 of file cpl_vsisimple.cpp.

00182 {
00183     return( fgetc( fp ) );
00184 }

char CPL_DLL* VSIFGets ( char * pszBuffer,
int nBufferSize,
FILE * fp )
 

Definition at line 170 of file cpl_vsisimple.cpp.

00172 {
00173     return( fgets( pszBuffer, nBufferSize, fp ) );
00174 }

CPL_C_START FILE CPL_DLL* VSIFOpen ( const char * pszFilename,
const char * pszAccess )
 

Definition at line 90 of file cpl_vsisimple.cpp.

00092 {
00093     return( fopen( (char *) pszFilename, (char *) pszAccess ) );
00094 }

int CPL_DLL VSIFPrintf ( FILE * fp,
const char * pszFormat,
... )
 

Definition at line 204 of file cpl_vsisimple.cpp.

00206 {
00207     va_list     args;
00208     int         nReturn;
00209 
00210     va_start( args, pszFormat );
00211     nReturn = vfprintf( fp, pszFormat, args );
00212     va_end( args );
00213 
00214     return( nReturn );
00215 }

int CPL_DLL VSIFPutc ( int nChar,
FILE * fp )
 

Definition at line 241 of file cpl_vsisimple.cpp.

00243 {
00244     return( fputc( nChar, fp ) );
00245 }

int CPL_DLL VSIFPuts ( const char * pszString,
FILE * fp )
 

Definition at line 231 of file cpl_vsisimple.cpp.

00233 {
00234     return fputs( pszString, fp );
00235 }

size_t CPL_DLL VSIFRead ( void * pBuffer,
size_t nSize,
size_t nCount,
FILE * fp )
 

Definition at line 140 of file cpl_vsisimple.cpp.

00142 {
00143     return( fread( pBuffer, nSize, nCount, fp ) );
00144 }

int CPL_DLL VSIFSeek ( FILE * fp,
long nOffset,
int nWhence )
 

Definition at line 110 of file cpl_vsisimple.cpp.

00112 {
00113     return( fseek( fp, nOffset, nWhence ) );
00114 }

long CPL_DLL VSIFTell ( FILE * fp )
 

Definition at line 120 of file cpl_vsisimple.cpp.

00122 {
00123     return( ftell( fp ) );
00124 }

size_t CPL_DLL VSIFWrite ( void * pBuffer,
size_t nSize,
size_t nCount,
FILE * fp )
 

Definition at line 150 of file cpl_vsisimple.cpp.

00152 {
00153     return( fwrite( pBuffer, nSize, nCount, fp ) );
00154 }

void CPL_DLL VSIFree ( void * pData )
 

Definition at line 281 of file cpl_vsisimple.cpp.

00283 {
00284     if( pData != NULL )
00285         free( pData );
00286 }

void CPL_DLL* VSIMalloc ( size_t nSize )
 

Definition at line 261 of file cpl_vsisimple.cpp.

00263 {
00264     return( malloc( nSize ) );
00265 }

int CPL_DLL VSIMkdir ( const char * pszPathname,
long mode )
 

Definition at line 316 of file cpl_vsisimple.cpp.

00318 {
00319 #ifdef WIN32
00320     return mkdir( pszPathname );
00321 #elif defined(macos_pre10)
00322     return -1;
00323 #else
00324     return mkdir( pszPathname, mode );
00325 #endif
00326 }

void CPL_DLL* VSIRealloc ( void * pData,
size_t nNewSize )
 

Definition at line 271 of file cpl_vsisimple.cpp.

00273 {
00274     return( realloc( pData, nNewSize ) );
00275 }

void CPL_DLL VSIRewind ( FILE * fp )
 

Definition at line 130 of file cpl_vsisimple.cpp.

00132 {
00133     rewind( fp );
00134 }

int CPL_DLL VSIRmdir ( const char * pszFilename )
 

Definition at line 342 of file cpl_vsisimple.cpp.

00344 {
00345     return rmdir( pszFilename );
00346 }

int CPL_DLL VSIStat ( const char * pszFilename,
VSIStatBuf * pStatBuf )
 

Definition at line 302 of file cpl_vsisimple.cpp.

00304 {
00305 #if defined(macos_pre10)
00306     return -1;
00307 #else
00308     return( stat( pszFilename, pStatBuf ) );
00309 #endif
00310 }

char CPL_DLL* VSIStrdup ( const char * pszString )
 

Definition at line 292 of file cpl_vsisimple.cpp.

00294 {
00295     return( strdup( pszString ) );
00296 }

int CPL_DLL VSIUngetc ( int c,
FILE * fp )
 

Definition at line 190 of file cpl_vsisimple.cpp.

00192 {
00193     return( ungetc( c, fp ) );
00194 }

int CPL_DLL VSIUnlink ( const char * pszFilename )
 

Definition at line 332 of file cpl_vsisimple.cpp.

00334 {
00335     return unlink( pszFilename );
00336 }

Generated at Fri Sep 6 00:07:17 2002 for OSSIM - Open Source Image Map by doxygen1.2.6 written by , © 1997-2001