summaryrefslogtreecommitdiff
path: root/engine/saverestore_filesystem.h
diff options
context:
space:
mode:
Diffstat (limited to 'engine/saverestore_filesystem.h')
-rw-r--r--engine/saverestore_filesystem.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/engine/saverestore_filesystem.h b/engine/saverestore_filesystem.h
new file mode 100644
index 0000000..9ae6d39
--- /dev/null
+++ b/engine/saverestore_filesystem.h
@@ -0,0 +1,51 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Interface for filesystem calls used by the saverestore system
+// to manupulate the save directory.
+//
+//=============================================================================//
+#ifndef SAVERESTOREFILESYSTEM_H
+#define SAVERESTOREFILESYSTEM_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "utlmap.h"
+#include "utlsymbol.h"
+#include "filesystem.h"
+
+abstract_class ISaveRestoreFileSystem
+{
+public:
+ virtual FileHandle_t Open( const char *pFileName, const char *pOptions, const char *pathID = NULL ) = 0;
+ virtual void Close( FileHandle_t ) = 0;
+ virtual int Read( void *pOutput, int size, FileHandle_t file ) = 0;
+ virtual int Write( void const* pInput, int size, FileHandle_t file ) = 0;
+ virtual void Seek( FileHandle_t file, int pos, FileSystemSeek_t method ) = 0;
+ virtual unsigned int Tell( FileHandle_t file ) = 0;
+ virtual unsigned int Size( FileHandle_t file ) = 0;
+ virtual unsigned int Size( const char *pFileName, const char *pPathID = NULL ) = 0;
+
+ virtual bool FileExists( const char *pFileName, const char *pPathID = NULL ) = 0;
+ virtual void RenameFile( char const *pOldPath, char const *pNewPath, const char *pathID = NULL ) = 0;
+ virtual void RemoveFile( char const* pRelativePath, const char *pathID = NULL ) = 0;
+
+ virtual void AsyncFinishAllWrites( void ) = 0;
+ virtual void AsyncRelease( FSAsyncControl_t hControl ) = 0;
+ virtual FSAsyncStatus_t AsyncWrite( const char *pFileName, const void *pSrc, int nSrcBytes, bool bFreeMemory, bool bAppend, FSAsyncControl_t *pControl = NULL ) = 0;
+ virtual FSAsyncStatus_t AsyncFinish( FSAsyncControl_t hControl, bool wait = false ) = 0;
+ virtual FSAsyncStatus_t AsyncAppend( const char *pFileName, const void *pSrc, int nSrcBytes, bool bFreeMemory, FSAsyncControl_t *pControl = NULL ) = 0;
+ virtual FSAsyncStatus_t AsyncAppendFile( const char *pDestFileName, const char *pSrcFileName, FSAsyncControl_t *pControl = NULL ) = 0;
+
+ virtual void DirectoryCopy( const char *pPath, const char *pDestFileName, bool bIsXSave ) = 0;
+ virtual bool DirectoryExtract( FileHandle_t pFile, int fileCount, bool bIsXSave ) = 0;
+ virtual int DirectoryCount( const char *pPath ) = 0;
+ virtual void DirectoryClear( const char *pPath, bool bIsXSave ) = 0;
+
+ virtual void AuditFiles( void ) = 0;
+ virtual bool LoadFileFromDisk( const char *pFilename ) = 0;
+};
+
+extern ISaveRestoreFileSystem *g_pSaveRestoreFileSystem;
+
+#endif // SAVERESTOREFILESYSTEM_H