29 #ifndef CPL_VSIL_PLUGIN_H_INCLUDED
30 #define CPL_VSIL_PLUGIN_H_INCLUDED
35 #include "cpl_vsi_virtual.h"
45 class VSIPluginHandle;
49 CPL_DISALLOW_COPY_ASSIGN(VSIPluginFilesystemHandler)
56 friend class VSIPluginHandle;
57 VSIPluginHandle* CreatePluginHandle(
void *cbData);
58 const
char* GetCallbackFilename(const
char* pszFilename);
59 bool IsValidFilename(const
char *pszFilename);
62 int Seek(
void *pFile,
vsi_l_offset nOffset,
int nWhence );
63 size_t Read(
void *pFile,
void *pBuffer,
size_t nSize,
size_t nCount );
64 int ReadMultiRange(
void *pFile,
int nRanges,
void ** ppData, const
vsi_l_offset* panOffsets, const
size_t* panSizes );
66 int Eof(
void *pFile );
67 size_t Write(
void *pFile, const
void *pBuffer,
size_t nSize,
size_t nCount);
68 int Flush(
void *pFile );
70 int Close(
void *pFile );
73 VSIPluginFilesystemHandler( const
char *pszPrefix,
75 ~VSIPluginFilesystemHandler() override;
78 const
char *pszAccess,
79 bool bSetError ) override;
81 int Stat ( const
char *pszFilename,
VSIStatBufL *pStatBuf,
int nFlags ) override;
82 int Unlink ( const
char * pszFilename ) override;
83 int Rename ( const
char * oldpath, const
char * ) override;
84 int Mkdir ( const
char * pszDirname,
long nMode ) override;
85 int Rmdir ( const
char * pszDirname ) override;
86 char **ReadDir ( const
char *pszDirname )
override
87 {
return ReadDirEx(pszDirname, 0); }
88 char **ReadDirEx(
const char * pszDirname,
int nMaxFiles )
override;
89 int HasOptimizedReadMultiRange(
const char* pszPath )
override;
99 CPL_DISALLOW_COPY_ASSIGN(VSIPluginHandle)
102 VSIPluginFilesystemHandler* poFS;
107 VSIPluginHandle( VSIPluginFilesystemHandler* poFS,
void *cbData);
108 ~VSIPluginHandle() override;
112 size_t Read(
void *pBuffer,
size_t nSize,
size_t nCount ) override;
113 int ReadMultiRange(
int nRanges,
void ** ppData, const
vsi_l_offset* panOffsets, const
size_t* panSizes ) override;
116 size_t Write( const
void *pBuffer,
size_t nSize,
size_t nCount) override;
117 int Flush() override;
119 int Close() override;
126 #endif // CPL_VSIL_PLUGIN_H_INCLUDED
VSIRangeStatus
Definition: cpl_vsi.h:175
Definition: cpl_vsi_virtual.h:83
Definition: cpl_vsi_virtual.h:56
Definition: cpl_vsi.h:504
struct VSI_STAT64_T VSIStatBufL
Definition: cpl_vsi.h:192
GUIntBig vsi_l_offset
Definition: cpl_vsi.h:140