📄 icesymboliclist.h
字号:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
* Contains code for symbolic lists.
* \file IceSymbolicList.h
* \author Pierre Terdiman
* \date April, 4, 2000
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Include Guard
#ifndef __ICESYMBOLICLIST_H__
#define __ICESYMBOLICLIST_H__
// Helpers
FUNCTION ICECORE_API bool GetBool(const String& name, bool& flag);
FUNCTION ICECORE_API bool GetDecimal(const String& name, udword& value);
FUNCTION ICECORE_API bool GetFloat(const String& name, float& value);
FUNCTION ICECORE_API bool GetString(const String& name, String& defined);
class ICECORE_API SymbolicList
{
public:
// Constructor/Destructor
SymbolicList(const char* name=null, udword size=0);
~SymbolicList();
// Create a new symbol
bool AddSymbol(const char* symbol, udword value);
bool AddSymbol(const char* symbol, float value);
// Get the current number of symbols
udword GetNbSymbols() const;
// Get ith symbol
const String* GetSymbol(udword i) const;
// Get ith symbolic value
bool GetSymbolicValue(udword i, udword& value) const;
bool GetSymbolicValue(udword i, float& value) const;
// Symbol-to-value mapping
bool GetSymbolicValue(const String& symbol, udword& value) const;
bool GetSymbolicValue(const String& symbol, float& value) const;
// Value-to-symbol mapping
bool GetSymbolicString(udword value, String& symbol) const;
bool GetSymbolicString(float value, String& symbol) const;
// Delete all symbols
bool FlushSymbols();
// Naming
inline_ void SetName(const String& name) { mName = name; }
inline_ void SetName(const char* name) { mName = name; }
inline_ const String& GetName() const { return mName; }
private:
String mName; //!< List name == identifier
Container mList; //!< List of symbolic values
};
// Global symbolic lists
FUNCTION ICECORE_API bool RegisterSymbolicList(const SymbolicList* list);
FUNCTION ICECORE_API bool UnregisterSymbolicList(const SymbolicList* list);
FUNCTION ICECORE_API SymbolicList* GetSymbolicList(const char* name);
FUNCTION ICECORE_API SymbolicList* CreateSymbolicList(const char* name, udword size=0);
class ICECORE_API SymbolicStrList
{
public:
// Constructor/Destructor
SymbolicStrList(const char* name=null, udword size=0);
~SymbolicStrList();
// Create a new symbol
bool AddSymbol(const char* symbol, const char* value);
// Get the current number of symbols
udword GetNbSymbols() const;
// Get ith symbol
const String* GetSymbol(udword i) const;
// Get ith symbolic value
bool GetSymbolicValue(udword i, String& value) const;
// Symbol-to-value mapping
bool GetSymbolicValue(const String& symbol, String& value) const;
// Value-to-symbol mapping
bool GetSymbolicString(const String& value, String& symbol) const;
// Delete all symbols
bool FlushSymbols();
// Naming
inline_ void SetName(const String& name) { mName = name; }
inline_ void SetName(const char* name) { mName = name; }
inline_ const String& GetName() const { return mName; }
private:
String mName; //!< List name == identifier
Container mList; //!< List of symbolic values
};
// Global symbolic lists
FUNCTION ICECORE_API bool RegisterSymbolicStrList(const SymbolicStrList* list);
FUNCTION ICECORE_API bool UnregisterSymbolicStrList(const SymbolicStrList* list);
FUNCTION ICECORE_API SymbolicStrList* GetSymbolicStrList(const char* name);
FUNCTION ICECORE_API SymbolicStrList* CreateSymbolicStrList(const char* name, udword size=0);
ICECORE_API bool FindSymbolicValue(const char* list, const char* symbolic, udword& value);
ICECORE_API bool FindSymbolicValue(const char* list, const char* symbolic, float& value);
#endif // __ICESYMBOLICLIST_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -