提交scripts
This commit is contained in:
1 parent
82caf72036
commit
07dabbd186
224 files changed
+130146
No files matched your search
@@ -0,0 +1,82 @@
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// ConfigTable.h
|
||||
//
|
||||
// Copyright 2007 cDc@seacave
|
||||
// Distributed under the Boost Software License, Version 1.0
|
||||
// (See http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#ifndef __SEACAVE_CONFIGTABLE_H__
|
||||
#define __SEACAVE_CONFIGTABLE_H__
|
||||
|
||||
|
||||
// I N C L U D E S /////////////////////////////////////////////////
|
||||
|
||||
#include "SML.h"
|
||||
|
||||
|
||||
// D E F I N E S ///////////////////////////////////////////////////
|
||||
|
||||
|
||||
namespace SEACAVE {
|
||||
|
||||
// S T R U C T S ///////////////////////////////////////////////////
|
||||
|
||||
typedef struct CFGITEM_TYPE {
|
||||
enum {
|
||||
NA = 0, // no special states available
|
||||
TEMP = (1 << 0), // this item lives only this instance and it will not be save
|
||||
};
|
||||
Flags state;
|
||||
String name;
|
||||
String desc;
|
||||
String defval;
|
||||
StringArr vals;
|
||||
} CFGITEM;
|
||||
|
||||
|
||||
// P R O T O T Y P E S /////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* Configuration table interface.
|
||||
*/
|
||||
|
||||
class GENERAL_API CConfigTable
|
||||
{
|
||||
public:
|
||||
CConfigTable(const String&);
|
||||
~CConfigTable();
|
||||
|
||||
void Release();
|
||||
|
||||
// main methods
|
||||
void Insert(const String&);
|
||||
void Remove(const String&);
|
||||
const SML& GetConfig(const String&) const;
|
||||
SML& GetConfig(const String&);
|
||||
const SML& GetConfig() const { return m_oSML; }
|
||||
SML& GetConfig() { return m_oSML; }
|
||||
inline SMLVALUE& operator[] (const String& name) { return m_oSML[name]; }
|
||||
inline IDX InsertChild(CConfigTable& oCfg) { oCfg.SetParent(this); return m_oSML.InsertChild(&oCfg.m_oSML); }
|
||||
inline void RemoveChild(CConfigTable& oCfg) { oCfg.SetParent(NULL); m_oSML.RemoveChild(oCfg.m_oSML.GetName()); }
|
||||
|
||||
// misc methods
|
||||
bool Load(const String&);
|
||||
bool Load(ISTREAM&);
|
||||
bool Save(const String&, SML::SAVEFLAG=SML::NONE) const;
|
||||
bool Save(OSTREAM&, SML::SAVEFLAG=SML::NONE) const;
|
||||
inline const String& GetName() const { return m_oSML.GetName(); }
|
||||
inline CConfigTable* GetParent() const { return m_pParent; }
|
||||
inline void SetParent(CConfigTable* pParent) { m_pParent = pParent; }
|
||||
static void STCALL ItemInitData(const String&, SMLVALUE&, void*);
|
||||
static bool STCALL ItemSaveData(const SMLVALUE&, void*);
|
||||
static void STCALL ItemReleaseData(SMLVALUE&, void*);
|
||||
|
||||
private:
|
||||
SML m_oSML;
|
||||
CConfigTable* m_pParent;
|
||||
};
|
||||
/*----------------------------------------------------------------*/
|
||||
|
||||
} // namespace SEACAVE
|
||||
|
||||
#endif // __SEACAVE_CONFIGTABLE_H__
|
||||
Reference in new issue
Block a user