3#ifndef ENGINE_STORAGE_H
4#define ENGINE_STORAGE_H
55 virtual IOHANDLE OpenFile(
const char *pFilename,
int Flags,
int Type,
char *pBuffer =
nullptr,
int BufferSize = 0) = 0;
56 virtual bool FileExists(
const char *pFilename,
int Type) = 0;
58 virtual bool ReadFile(
const char *pFilename,
int Type,
void **ppResult,
unsigned *pResultLen) = 0;
59 virtual char *
ReadFileStr(
const char *pFilename,
int Type) = 0;
60 virtual bool RetrieveTimes(
const char *pFilename,
int Type, time_t *pCreated, time_t *pModified) = 0;
62 virtual bool FindFile(
const char *pFilename,
const char *pPath,
int Type,
char *pBuffer,
int BufferSize) = 0;
63 virtual size_t FindFiles(
const char *pFilename,
const char *pPath,
int Type, std::set<std::string> *pEntries) = 0;
64 virtual bool RemoveFile(
const char *pFilename,
int Type) = 0;
66 virtual bool RenameFile(
const char *pOldFilename,
const char *pNewFilename,
int Type) = 0;
68 virtual void GetCompletePath(
int Type,
const char *pDir,
char *pBuffer,
unsigned BufferSize) = 0;
72 virtual const char *
GetBinaryPath(
const char *pFilename,
char *pBuffer,
unsigned BufferSize) = 0;
76 static const char *
FormatTmpPath(
char *aBuf,
unsigned BufSize,
const char *pPath);
virtual void ListDirectory(int Type, const char *pPath, FS_LISTDIR_CALLBACK pfnCallback, void *pUser)=0
virtual const char * GetBinaryPath(const char *pFilename, char *pBuffer, unsigned BufferSize)=0
virtual bool FolderExists(const char *pFilename, int Type)=0
virtual bool RenameBinaryFile(const char *pOldFilename, const char *pNewFilename)=0
virtual const char * GetBinaryPathAbsolute(const char *pFilename, char *pBuffer, unsigned BufferSize)=0
virtual char * ReadFileStr(const char *pFilename, int Type)=0
virtual bool RenameFile(const char *pOldFilename, const char *pNewFilename, int Type)=0
virtual IOHANDLE OpenFile(const char *pFilename, int Flags, int Type, char *pBuffer=nullptr, int BufferSize=0)=0
virtual bool FileExists(const char *pFilename, int Type)=0
EInitializationType
Definition: storage.h:45
static void StripPathAndExtension(const char *pFilename, char *pBuffer, int BufferSize)
Definition: storage.cpp:927
static const char * FormatTmpPath(char *aBuf, unsigned BufSize, const char *pPath)
Definition: storage.cpp:949
virtual bool RemoveFolder(const char *pFilename, int Type)=0
virtual bool CalculateHashes(const char *pFilename, int Type, SHA256_DIGEST *pSha256, unsigned *pCrc=nullptr)=0
virtual bool FindFile(const char *pFilename, const char *pPath, int Type, char *pBuffer, int BufferSize)=0
virtual bool CreateFolder(const char *pFoldername, int Type)=0
@ TYPE_ABSOLUTE
Definition: storage.h:27
@ TYPE_ALL_OR_ABSOLUTE
Definition: storage.h:41
@ TYPE_ALL
Definition: storage.h:26
@ TYPE_SAVE_OR_ABSOLUTE
Definition: storage.h:34
@ TYPE_SAVE
Definition: storage.h:25
virtual bool RetrieveTimes(const char *pFilename, int Type, time_t *pCreated, time_t *pModified)=0
virtual bool ReadFile(const char *pFilename, int Type, void **ppResult, unsigned *pResultLen)=0
virtual bool RemoveFile(const char *pFilename, int Type)=0
virtual void GetCompletePath(int Type, const char *pDir, char *pBuffer, unsigned BufferSize)=0
virtual int NumPaths() const =0
virtual size_t FindFiles(const char *pFilename, const char *pPath, int Type, std::set< std::string > *pEntries)=0
virtual void ListDirectoryInfo(int Type, const char *pPath, FS_LISTDIR_CALLBACK_FILEINFO pfnCallback, void *pUser)=0
virtual bool RemoveBinaryFile(const char *pFilename)=0
#define MACRO_INTERFACE(Name)
Definition: kernel.h:25
void * IOHANDLE
Definition: logger.h:12
IStorage * CreateStorage(IStorage::EInitializationType InitializationType, int NumArgs, const char **ppArguments)
Definition: storage.cpp:955
@ MAX_PATHS
Definition: storage.h:16
IStorage * CreateTempStorage(const char *pDirectory)
Definition: storage.cpp:972
IStorage * CreateLocalStorage()
Definition: storage.cpp:960
int(* FS_LISTDIR_CALLBACK_FILEINFO)(const CFsFileInfo *info, int is_dir, int dir_type, void *user)
Definition: types.h:29
int(* FS_LISTDIR_CALLBACK)(const char *name, int is_dir, int dir_type, void *user)
Definition: types.h:20