79 lines
1.6 KiB
C
79 lines
1.6 KiB
C
|
|
#ifndef _LANG_SECTION_H_
|
|||
|
|
#define _LANG_SECTION_H_
|
|||
|
|
/************************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýڵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD>ýڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>getType<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽΪʹ<EFBFBD><EFBFBD>MemoryContainer<char><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><EFBFBD><EFBFBD>ڴ潫<EFBFBD><EFBFBD><EFBFBD>ᱻ<EFBFBD>ͷţ<EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷš<EFBFBD>
|
|||
|
|
*
|
|||
|
|
************************************************************************/
|
|||
|
|
class LangSection;
|
|||
|
|
class LangSectionTable;
|
|||
|
|
|
|||
|
|
class LangSection
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
enum ElementType
|
|||
|
|
{
|
|||
|
|
eInvalid,
|
|||
|
|
ePacket, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
eText, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
LangSection();
|
|||
|
|
LangSection(MemoryContainer<char>*);
|
|||
|
|
~LangSection();
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
inline ElementType getType()
|
|||
|
|
{
|
|||
|
|
return type_;
|
|||
|
|
}
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ֵ
|
|||
|
|
inline const char* getText()
|
|||
|
|
{
|
|||
|
|
return data_.str_;
|
|||
|
|
}
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ΪsName<6D><65><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD><D6B0>ڵ<EFBFBD>
|
|||
|
|
LangSection* getSection(const char* name);
|
|||
|
|
//<2F><><EFBFBD>ýڵ<C3BD>Ϊ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
|
void setText(const char* str);
|
|||
|
|
//<2F><><EFBFBD>ýڵ<C3BD>Ϊ<EFBFBD><CEAA><EFBFBD>ְ<EFBFBD>
|
|||
|
|
void setPacket(size_t len);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ㣬<DAB5><E3A3AC>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>setPacket<65><74><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ְ<EFBFBD>
|
|||
|
|
LangSection* addSection(const char* name);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
//<2F><><EFBFBD>սڵ<D5BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void clear();
|
|||
|
|
//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>뺯<EFBFBD><EBBAAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>reallocʵ<63><CAB5><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>롢<EFBFBD><EBA1A2>չ<EFBFBD>Լ<EFBFBD><D4BC>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
|
|||
|
|
void* Realloc(void* p, size_t s);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
ElementType type_; //<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
union
|
|||
|
|
{
|
|||
|
|
char* str_;
|
|||
|
|
LangSectionTable* pack_;
|
|||
|
|
} data_; //<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
MemoryContainer<char>* alloctor_ptr_;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class LangSectionTable :
|
|||
|
|
public BZHashTable<LangSection>
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
typedef BZHashTable<LangSection> Inherited;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
LangSectionTable(size_t len);
|
|||
|
|
~LangSectionTable();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|