29#ifndef CPL_VSIL_PLUGIN_H_INCLUDED
30#define CPL_VSIL_PLUGIN_H_INCLUDED
35#include "cpl_vsi_virtual.h"
48class VSIPluginFilesystemHandler :
public VSIFilesystemHandler
57 friend class VSIPluginHandle;
58 VSIPluginHandle *CreatePluginHandle(
void *cbData);
59 const char *GetCallbackFilename(
const char *pszFilename);
60 bool IsValidFilename(
const char *pszFilename);
63 int Seek(
void *pFile,
vsi_l_offset nOffset,
int nWhence);
64 size_t Read(
void *pFile,
void *pBuffer,
size_t nSize,
size_t nCount);
65 int ReadMultiRange(
void *pFile,
int nRanges,
void **ppData,
70 size_t Write(
void *pFile,
const void *pBuffer,
size_t nSize,
size_t nCount);
71 int Flush(
void *pFile);
73 int Close(
void *pFile);
76 VSIPluginFilesystemHandler(
const char *pszPrefix,
78 ~VSIPluginFilesystemHandler()
override;
84 int Stat(
const char *pszFilename,
VSIStatBufL *pStatBuf,
86 int Unlink(
const char *pszFilename)
override;
87 int Rename(
const char *oldpath,
const char * )
override;
88 int Mkdir(
const char *pszDirname,
long nMode)
override;
89 int Rmdir(
const char *pszDirname)
override;
90 char **ReadDir(
const char *pszDirname)
override
92 return ReadDirEx(pszDirname, 0);
94 char **ReadDirEx(
const char *pszDirname,
int nMaxFiles)
override;
95 char **SiblingFiles(
const char *pszFilename)
override;
96 int HasOptimizedReadMultiRange(
const char *pszPath)
override;
108 VSIPluginFilesystemHandler *poFS;
112 VSIPluginHandle(VSIPluginFilesystemHandler *poFS,
void *cbData);
113 ~VSIPluginHandle()
override;
117 size_t Read(
void *pBuffer,
size_t nSize,
size_t nCount)
override;
118 int ReadMultiRange(
int nRanges,
void **ppData,
120 const size_t *panSizes)
override;
124 size_t Write(
const void *pBuffer,
size_t nSize,
size_t nCount)
override;
125 int Flush()
override;
127 int Close()
override;
Virtual file handle.
Definition cpl_vsi_virtual.h:57
Core portability definitions for CPL.
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Helper to remove the copy and assignment constructors so that the compiler will not generate the defa...
Definition cpl_port.h:1049
char ** CSLConstList
Type of a constant null-terminated list of nul terminated strings.
Definition cpl_port.h:1190
Various convenience functions for working with strings and string lists.
#define VSIStatBufL
Type for VSIStatL()
Definition cpl_vsi.h:215
VSIRangeStatus
Range status.
Definition cpl_vsi.h:194
GUIntBig vsi_l_offset
Type for a file offset.
Definition cpl_vsi.h:146
struct containing callbacks to used by the handler.
Definition cpl_vsi.h:635