Important Update:
- DataTreeCore:
- Add Parent & Prev Child links to DataMembers
- Update CreateMember() to set Parent/Sibling reference
& increase Parent->Len
- Remove AddMember()
- Update DestroyMember() to decrease Parent->Len
- JSONparseCore:
- Update ParseArray() for above changes made to DataTreeCore
This commit is contained in:
@@ -34,6 +34,8 @@ struct SDataMember
|
||||
char * Value;
|
||||
unsigned short Len;
|
||||
|
||||
TDataMember * Parent;
|
||||
TDataMember * Prev;
|
||||
TDataMember * Next;
|
||||
};
|
||||
|
||||
@@ -45,8 +47,7 @@ private:
|
||||
TDataMember * RootMember;
|
||||
|
||||
// Manage Members
|
||||
TDataMember * CreateMember( const char * Name, const int Len = -1 );
|
||||
bool AddMember( TDataMember * Parent, TDataMember * Member );
|
||||
TDataMember * CreateMember( TDataMember * Parent, TDataMember * PrevChild, const char * Name, const int Len = -1 );
|
||||
bool DestroyMember( TDataMember ** Member );
|
||||
bool DestroyValue( TDataMember * Member );
|
||||
|
||||
@@ -68,8 +69,10 @@ public:
|
||||
TDataMember * GetIndexChild( TDataMember * Parent, const int Index );
|
||||
TDataMember * GetFirstChild( TDataMember * Parent, const char * Path, bool Create = false );
|
||||
|
||||
inline TDataMember * GetFirstChild( TDataMember * Parent ) { return ((Parent)? Parent->FirstChild : NULL); };
|
||||
inline TDataMember * GetNextChild( TDataMember * PrevChild ) { return ((PrevChild)? PrevChild->Next : NULL); };
|
||||
inline TDataMember * GetParent( TDataMember * Child ) { return ((Child)? Child->Parent : NULL); };
|
||||
inline TDataMember * GetFirstChild( TDataMember * Parent ) { return ((Parent)? Parent->FirstChild : NULL); };
|
||||
inline TDataMember * GetPrevChild( TDataMember * Child ) { return ((Child)? Child->Prev : NULL); };
|
||||
inline TDataMember * GetNextChild( TDataMember * Child ) { return ((Child)? Child->Next : NULL); };
|
||||
|
||||
const char * GetStr( TDataMember * BaseMember, const char * Path, const char * Default = NULL, bool Create = false );
|
||||
const char * GetStr( TDataMember * BaseMember, const char * Path, int &Len, const char * Default = NULL, bool Create = false );
|
||||
|
||||
Reference in New Issue
Block a user