Fission FSN
Loading...
Searching...
No Matches
fsCVariableTable.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 2/12/2009 12:24
4*
5* File: fsCVariableTable.h
6*
7* Author: Martin King
8*
9* Purpose: Dictionary of key value pairs
10*
11*********************************************************************/
12
13#ifndef fsCVariableTablehdr
14#define fsCVariableTablehdr
15
16#include <map>
17#include <vector>
18
19#include "../fsStr.h"
20
21class fsCResourceName;
22
23typedef std::map<fsStr, fsStr> VarTableMap;
24
25
27{
28 friend class CVarTableComparer;
29 friend class CStringsFile;
30
31public:
32
33 enum
34 {
36
39
44 };
45
46 const fsStr& fileNameGet() const { return mFileName; }
47 std::vector<fsStr> partKeyCollectionGet(const fsStr& pPartKey) const;
48 std::vector<fsStr> partValueCollectionGet(const fsStr& pPartVal) const;
49
50 fsF32 f32Get(const fsStr& pKey) const;
51 fsF32 f32GetWithDefault(const fsStr& pKey, fsF32 pDefault) const;
52 fsS32 s32Get(const fsStr& pKey) const;
53 fsS32 s32GetWithDefault(const fsStr& pKey, fsS32 pDefault) const;
54 fsStr strGet(const fsStr& pKey) const;
55 fsStr strGetWithDefault(const fsStr& pKey, const fsStr& pDefault) const;
56 fsBool boolGet(const fsStr& pKey) const;
57 fsBool boolGetWithDefault(const fsStr& pKey, fsBool pDefault) const;
58
59 void removeKeysContaining(const fsStr& pPartialKey);
60
61 fsBool keyExistsGet(const fsStr& pKey) const;
62
63 void merge(fsCVariableTable* pIncoming);
64
65 void s32Set(const fsStr& pKey, fsS32 pVal);
66 void f32Set(const fsStr& pKey, fsF32 pVal);
67 void strSet(const fsStr& pKey, const fsStr& pVal);
68 void boolSet(const fsStr& pKey, fsBool pVal);
69
70 fsS32 load(const fsCResourceName& pFileName);
71 void save(const fsCResourceName& pFileName) const;
72 fsS32 loadResultGet() const;
74
76 virtual ~fsCVariableTable();
77
78protected:
79
80 static const fsStr mBoolTrueStr;
81 static const fsStr mAltBoolTrueStr;
82 static const fsStr mBoolFalseStr;
83
84 static fsStr downcased(const fsStr& pKey);
85
87
89
90private:
91
92 struct FncForEach
93 {
94 virtual void operator()(VarTableMap::value_type& entry)
95 {
96 }
97 };
98
99 void forEachLayer(FncForEach& pFnc);
100
101 void bufferParse(fsStr& pDataBuffer);
102
103 static fsBool stringCheck(fsChar pChar);
104
105 static void whiteSpaceSkip(fsChar*& pChar);
106 void copyToTerminator(fsChar*& pChar, fsBool pIsString, fsStr& pDest);
107
108 fsStr mFileName;
109};
110
111#endif
Definition fsCResourceName.h:32
Definition fsCVariableTable.h:27
fsStr strGet(const fsStr &pKey) const
Definition fsCVariableTable.cpp:102
static const fsStr mBoolTrueStr
Definition fsCVariableTable.h:80
fsBool boolGet(const fsStr &pKey) const
Definition fsCVariableTable.cpp:119
fsF32 f32Get(const fsStr &pKey) const
Definition fsCVariableTable.cpp:70
fsF32 f32GetWithDefault(const fsStr &pKey, fsF32 pDefault) const
Definition fsCVariableTable.cpp:75
std::vector< fsStr > partKeyCollectionGet(const fsStr &pPartKey) const
Definition fsCVariableTable.cpp:24
static fsStr downcased(const fsStr &pKey)
Definition fsCVariableTable.cpp:39
friend class CVarTableComparer
Definition fsCVariableTable.h:28
fsS32 mLoadResult
Definition fsCVariableTable.h:88
virtual ~fsCVariableTable()
Definition fsCVariableTable.cpp:338
const fsStr & fileNameGet() const
Definition fsCVariableTable.h:46
std::vector< fsStr > partValueCollectionGet(const fsStr &pPartVal) const
Definition fsCVariableTable.cpp:11
static const fsStr mBoolFalseStr
Definition fsCVariableTable.h:82
fsS32 load(const fsCResourceName &pFileName)
Definition fsCVariableTable.cpp:244
fsS32 s32GetWithDefault(const fsStr &pKey, fsS32 pDefault) const
Definition fsCVariableTable.cpp:91
fsStr strGetWithDefault(const fsStr &pKey, const fsStr &pDefault) const
Definition fsCVariableTable.cpp:107
fsBool keyExistsGet(const fsStr &pKey) const
Definition fsCVariableTable.cpp:136
void boolSet(const fsStr &pKey, fsBool pVal)
Definition fsCVariableTable.cpp:187
fsCVariableTable()
Definition fsCVariableTable.cpp:332
void s32Set(const fsStr &pKey, fsS32 pVal)
Definition fsCVariableTable.cpp:141
static const fsStr mAltBoolTrueStr
Definition fsCVariableTable.h:81
VarTableMap mEntries
Definition fsCVariableTable.h:86
fsBool successfullLoadGet() const
Definition fsCVariableTable.cpp:321
void f32Set(const fsStr &pKey, fsF32 pVal)
Definition fsCVariableTable.cpp:157
fsBool boolGetWithDefault(const fsStr &pKey, fsBool pDefault) const
Definition fsCVariableTable.cpp:124
void merge(fsCVariableTable *pIncoming)
Definition fsCVariableTable.cpp:202
void removeKeysContaining(const fsStr &pPartialKey)
Definition fsCVariableTable.cpp:48
fsS32 loadResultGet() const
Definition fsCVariableTable.cpp:327
fsS32 s32Get(const fsStr &pKey) const
Definition fsCVariableTable.cpp:86
void save(const fsCResourceName &pFileName) const
Definition fsCVariableTable.cpp:309
@ eLOAD_RESULT_INVALID
Definition fsCVariableTable.h:35
@ eLOAD_RESULT_FAIL_FILE_NOT_FOUND
Definition fsCVariableTable.h:41
@ eLOAD_RESULT_SUCCESS_NO_CHECKSUM
Definition fsCVariableTable.h:37
@ eLOAD_RESULT_FAIL_READ_ERROR
Definition fsCVariableTable.h:42
@ eLOAD_RESULT_FAIL_FILESYSTEM_NOT_READY
Definition fsCVariableTable.h:40
@ eLOAD_RESULT_FAIL_CHECKSUM_INVALID
Definition fsCVariableTable.h:43
@ eLOAD_RESULT_SUCCESS_WITH_CHECKSUM
Definition fsCVariableTable.h:38
friend class CStringsFile
Definition fsCVariableTable.h:29
void strSet(const fsStr &pKey, const fsStr &pVal)
Definition fsCVariableTable.cpp:173
Definition fsStr.h:23
std::map< fsStr, fsStr > VarTableMap
Definition fsCVariableTable.h:23
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
char fsChar
Definition fsBaseTypes.h:12
float fsF32
Definition fsBaseTypes.h:28