43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#ifndef FILESYSTEM_H
|
|
#define FILESYSTEM_H
|
|
#include "tier0/platform.h"
|
|
#include "tier1/utlbuffer.h"
|
|
#include "tier1/utlstring.h"
|
|
|
|
enum EFileOptions
|
|
{
|
|
IFILE_READ,
|
|
IFILE_WRITE,
|
|
IFILE_APPEND
|
|
};
|
|
|
|
typedef struct FileHandle_s
|
|
{
|
|
FILE *file;
|
|
FILE *parent;
|
|
EFileOptions options;
|
|
size_t nSize;
|
|
size_t nOffset;
|
|
size_t nPtr;
|
|
} *FileHandle_t;
|
|
|
|
interface IFileSystem
|
|
{
|
|
public:
|
|
static void InitFilesystem( void );
|
|
static void AddGameDirectory( const char *psz );
|
|
static bool LoadPackFile( const char *szFilename );
|
|
static void CreatePath( const char *szPath );
|
|
static FileHandle_t Open( const char *szFilename, EFileOptions options );
|
|
static void Close( FileHandle_t file );
|
|
static size_t Size( FileHandle_t file );
|
|
static size_t Read( FileHandle_t file, void *pOutput, size_t nSize);
|
|
static size_t ReadLine( FileHandle_t file, void *pOutput, size_t nSize);
|
|
static size_t Write( FileHandle_t file, void *pInput, size_t nSize);
|
|
static size_t Seek( FileHandle_t file, size_t nSize);
|
|
static size_t Tell( FileHandle_t file, size_t nSize);
|
|
static size_t fprintf( FileHandle_t file, const char *szFormat, ...);
|
|
};
|
|
|
|
#endif
|