You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.6 KiB
72 lines
1.6 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//
|
||
|
// Serialization/unserialization buffer
|
||
|
//=============================================================================//
|
||
|
|
||
|
#ifndef UTLSTREAMBUFFER_H
|
||
|
#define UTLSTREAMBUFFER_H
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include "tier1/utlbuffer.h"
|
||
|
#include "filesystem.h"
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Command parsing..
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CUtlStreamBuffer : public CUtlBuffer
|
||
|
{
|
||
|
typedef CUtlBuffer BaseClass;
|
||
|
|
||
|
public:
|
||
|
// See CUtlBuffer::BufferFlags_t for flags
|
||
|
CUtlStreamBuffer( );
|
||
|
CUtlStreamBuffer( const char *pFileName, const char *pPath, int nFlags = 0, bool bDelayOpen = false );
|
||
|
~CUtlStreamBuffer();
|
||
|
|
||
|
// Open the file. normally done in constructor
|
||
|
void Open( const char *pFileName, const char *pPath, int nFlags );
|
||
|
|
||
|
// close the file. normally done in destructor
|
||
|
void Close();
|
||
|
|
||
|
// Is the file open?
|
||
|
bool IsOpen() const;
|
||
|
|
||
|
private:
|
||
|
// error flags
|
||
|
enum
|
||
|
{
|
||
|
FILE_OPEN_ERROR = MAX_ERROR_FLAG << 1,
|
||
|
FILE_WRITE_ERROR = MAX_ERROR_FLAG << 2,
|
||
|
};
|
||
|
|
||
|
// Overflow functions
|
||
|
bool StreamPutOverflow( int nSize );
|
||
|
bool StreamGetOverflow( int nSize );
|
||
|
|
||
|
// Grow allocation size to fit requested size
|
||
|
void GrowAllocatedSize( int nSize );
|
||
|
|
||
|
// Reads bytes from the file; fixes up maxput if necessary and null terminates
|
||
|
int ReadBytesFromFile( int nBytesToRead, int nReadOffset );
|
||
|
|
||
|
FileHandle_t OpenFile( const char *pFileName, const char *pPath );
|
||
|
|
||
|
FileHandle_t m_hFileHandle;
|
||
|
|
||
|
char *m_pFileName;
|
||
|
char *m_pPath;
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif // UTLSTREAMBUFFER_H
|
||
|
|