1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-19 20:16:10 +08:00

VFileSystem019 update (bug 4965).

This commit is contained in:
Nicholas Hastings
2011-06-23 18:04:51 -04:00
parent c142a7a0a1
commit 52a6383c49
2 changed files with 45 additions and 1 deletions

View File

@ -401,7 +401,7 @@ public:
// Main file system interface
//-----------------------------------------------------------------------------
#define FILESYSTEM_INTERFACE_VERSION "VFileSystem017"
#define FILESYSTEM_INTERFACE_VERSION "VFileSystem019"
abstract_class IFileSystem : public IAppSystem, public IBaseFileSystem
{
@ -549,6 +549,10 @@ public:
virtual FSAsyncStatus_t AsyncFlush() = 0;
virtual bool AsyncSuspend() = 0;
virtual bool AsyncResume() = 0;
// Next two functions each take an IAsyncFileFetch ptr.
virtual void AsyncAddFetcher( void *pFetch ) = 0;
virtual void AsyncRemoveFetcher( void *pFetch ) = 0;
//------------------------------------
// Functions to hold a file open if planning on doing mutiple reads. Use is optional,
@ -720,6 +724,11 @@ public:
// with check_crc. Then it calls CheckCachedFileCRC later when it gets client requests to verify CRCs.
virtual void CacheFileCRCs( const char *pPathname, ECacheCRCType eType, IFileList *pFilter ) = 0;
virtual EFileCRCStatus CheckCachedFileCRC( const char *pPathID, const char *pRelativeFilename, CRC32_t *pCRC ) = 0;
virtual void CacheFileMD5s( const char *pPathname, ECacheCRCType eType, IFileList *pFilter ) = 0;
// Last param is an MD5Value_t pointer.
virtual EFileCRCStatus CheckCachedFileMD5( const char *pPathID, const char *pRelativeFilename, void *pMD5 ) = 0;
// Fills in the list of files that have been loaded off disk and have not been verified.
// Returns the number of files filled in (between 0 and nMaxFiles).
@ -728,6 +737,9 @@ public:
// returned from here again.
// The client sends batches of these to the server to verify.
virtual int GetUnverifiedCRCFiles( CUnverifiedCRCFile *pFiles, int nMaxFiles ) = 0;
// First param is a CUnverifiedMD5File pointer.
virtual int GetUnverifiedMD5Files( void *pFiles, int nMaxFiles ) = 0;
// Control debug message output.
// Pass a combination of WHITELIST_SPEW_ flags.
@ -736,6 +748,15 @@ public:
// Installs a callback used to display a dirty disk dialog
virtual void InstallDirtyDiskReportFunc( FSDirtyDiskReportFunc_t func ) = 0;
// This looks to return a "CFileCacheObject" object.
virtual void *CreateFileCache( void ) = 0;
// Assuming that the first param in each of these is also a CFileCacheObject ptr.
virtual void AddFilesToFileCache( void *pFileCache, const char **, int size, const char * ) = 0;
virtual bool IsFileCacheFileLoaded( void *pFileCache, const char *szFile ) = 0;
virtual bool IsFileCacheLoaded( void *pFileCache ) = 0;
virtual void DestroyFileCache( void *pFileCache ) = 0;
};
//-----------------------------------------------------------------------------

View File

@ -172,6 +172,9 @@ public:
virtual FSAsyncStatus_t AsyncSetPriority(FSAsyncControl_t hControl, int newPriority) { return m_pFileSystemPassThru->AsyncSetPriority(hControl, newPriority); }
virtual bool AsyncSuspend() { return m_pFileSystemPassThru->AsyncSuspend(); }
virtual bool AsyncResume() { return m_pFileSystemPassThru->AsyncResume(); }
// Next two functions each take an IAsyncFileFetch ptr.
virtual void AsyncAddFetcher( void *pFetch ) { return m_pFileSystemPassThru->AsyncAddFetcher(pFetch); }
virtual void AsyncRemoveFetcher( void *pFetch ) { return m_pFileSystemPassThru->AsyncRemoveFetcher(pFetch); }
virtual const char *RelativePathToFullPath( const char *pFileName, const char *pPathID, char *pLocalPath, int localPathBufferSize, PathTypeFilter_t pathFilter = FILTER_NONE, PathTypeQuery_t *pPathType = NULL ) { return m_pFileSystemPassThru->RelativePathToFullPath( pFileName, pPathID, pLocalPath, localPathBufferSize, pathFilter, pPathType ); }
virtual int GetSearchPath( const char *pathID, bool bGetPackFiles, char *pPath, int nMaxLen ) { return m_pFileSystemPassThru->GetSearchPath( pathID, bGetPackFiles, pPath, nMaxLen ); }
@ -220,16 +223,36 @@ public:
{ m_pFileSystemPassThru->MarkAllCRCsUnverified(); }
virtual void CacheFileCRCs( const char *pPathname, ECacheCRCType eType, IFileList *pFilter )
{ return m_pFileSystemPassThru->CacheFileCRCs( pPathname, eType, pFilter ); }
virtual void CacheFileMD5s( const char *pPathname, ECacheCRCType eType, IFileList *pFilter )
{ return m_pFileSystemPassThru->CacheFileMD5s( pPathname, eType, pFilter ); }
virtual EFileCRCStatus CheckCachedFileCRC( const char *pPathID, const char *pRelativeFilename, CRC32_t *pCRC )
{ return m_pFileSystemPassThru->CheckCachedFileCRC( pPathID, pRelativeFilename, pCRC ); }
virtual EFileCRCStatus CheckCachedFileMD5( const char *pPathID, const char *pRelativeFilename, void *pMD5 )
{ return m_pFileSystemPassThru->CheckCachedFileMD5( pPathID, pRelativeFilename, pMD5 ); }
virtual int GetUnverifiedCRCFiles( CUnverifiedCRCFile *pFiles, int nMaxFiles )
{ return m_pFileSystemPassThru->GetUnverifiedCRCFiles( pFiles, nMaxFiles ); }
virtual int GetUnverifiedMD5Files( void *pFiles, int nMaxFiles )
{ return m_pFileSystemPassThru->GetUnverifiedMD5Files( pFiles, nMaxFiles ); }
virtual int GetWhitelistSpewFlags()
{ return m_pFileSystemPassThru->GetWhitelistSpewFlags(); }
virtual void SetWhitelistSpewFlags( int spewFlags )
{ m_pFileSystemPassThru->SetWhitelistSpewFlags( spewFlags ); }
virtual void InstallDirtyDiskReportFunc( FSDirtyDiskReportFunc_t func ) { m_pFileSystemPassThru->InstallDirtyDiskReportFunc( func ); }
// This looks to return a "CFileCacheObject" object.
virtual void *CreateFileCache()
{ return m_pFileSystemPassThru->CreateFileCache(); }
// Assuming that the first param in each of these is also a CFileCacheObject ptr.
virtual void AddFilesToFileCache( void *pFileCache, const char **pszUnk1, int size, const char *szUnk2 )
{ m_pFileSystemPassThru->AddFilesToFileCache( pFileCache, pszUnk1, size, szUnk2 ); }
virtual bool IsFileCacheFileLoaded( void *pFileCache, const char *szFile )
{ return m_pFileSystemPassThru->IsFileCacheFileLoaded( pFileCache, szFile ); }
virtual bool IsFileCacheLoaded( void *pFileCache )
{ return m_pFileSystemPassThru->IsFileCacheLoaded( pFileCache ); }
virtual void DestroyFileCache( void *pFileCache )
{ m_pFileSystemPassThru->DestroyFileCache( pFileCache ); }
protected:
IFileSystem *m_pFileSystemPassThru;
};