blob: 176f36e627db2b1001054bf4191f0b4d8137b706 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef SAVERESTORE_UTLSYMBOL_H
#define SAVERESTORE_UTLSYMBOL_H
#ifdef _WIN32
#pragma once
#endif
#include "utlsymbol.h"
class CUtlSymbolDataOps : public CDefSaveRestoreOps
{
public:
CUtlSymbolDataOps( CUtlSymbolTable &masterTable ) : m_symbolTable(masterTable) {}
virtual void Save( const SaveRestoreFieldInfo_t &fieldInfo, ISave *pSave )
{
CUtlSymbol *sym = ((CUtlSymbol *)fieldInfo.pField);
pSave->WriteString( m_symbolTable.String( *sym ) );
}
virtual void Restore( const SaveRestoreFieldInfo_t &fieldInfo, IRestore *pRestore )
{
CUtlSymbol *sym = ((CUtlSymbol *)fieldInfo.pField);
char tmp[1024];
pRestore->ReadString( tmp, sizeof(tmp), 0 );
*sym = m_symbolTable.AddString( tmp );
}
virtual void MakeEmpty( const SaveRestoreFieldInfo_t &fieldInfo )
{
CUtlSymbol *sym = ((CUtlSymbol *)fieldInfo.pField);
*sym = UTL_INVAL_SYMBOL;
}
virtual bool IsEmpty( const SaveRestoreFieldInfo_t &fieldInfo )
{
CUtlSymbol *sym = ((CUtlSymbol *)fieldInfo.pField);
return (*sym).IsValid() ? false : true;
}
private:
CUtlSymbolTable &m_symbolTable;
};
#endif // SAVERESTORE_UTLSYMBOL_H
|