Important Update:
- JSONparseCore: - Allow JSON to be parsed from string data - DataTreeCore: - Allow GetMember to work with now path, ie. return BaseMember param
This commit is contained in:
@@ -60,8 +60,6 @@ TDataMember * CDataTree::CreateMember( TDataMember * Parent, TDataMember * Prev
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
bool CDataTree::DestroyMember( TDataMember ** Member )
|
||||
{
|
||||
TDataMember * NextMember;
|
||||
@@ -268,8 +266,12 @@ TDataMember * CDataTree::GetMember( TDataMember * BaseMember, const char * Path
|
||||
TDataMember ** Member;
|
||||
|
||||
// Get Child
|
||||
Member = GetMemberPtr( BaseMember, Path, Create );
|
||||
return ((Member)? *Member : NULL);
|
||||
if (!Path || !*Path) {
|
||||
return ((BaseMember)? BaseMember : NULL);
|
||||
} else {
|
||||
Member = GetMemberPtr( BaseMember, Path, Create );
|
||||
return ((Member)? *Member : NULL);
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -254,6 +254,29 @@ bool CJSONparse::ReadFromHandle( const char * BasePath, int Handle, bool pRefill
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool CJSONparse::ReadFromString( const char * BasePath, const char * InString, const int Len )
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
// Clear Error
|
||||
Error = false;
|
||||
|
||||
// Load Buffer
|
||||
CreateBuffer( Len );
|
||||
Buffer->Push( true, InString, Len );
|
||||
|
||||
// Continuously refill buffer while loading
|
||||
result = ReadFromBuffer( BasePath );
|
||||
RefillBuffer = false;
|
||||
|
||||
// Destroy buffer
|
||||
FreeBuffer();
|
||||
|
||||
InputHandle = -1;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool CJSONparse::ReadFromBuffer( const char * BasePath )
|
||||
{
|
||||
TDataMember * BaseMember = NULL;
|
||||
|
||||
@@ -67,6 +67,7 @@ public:
|
||||
bool ReadFromBuffer( const char * BasePath );
|
||||
|
||||
// Input
|
||||
bool ReadFromString( const char * BasePath, const char * InString, const int Len );
|
||||
bool ReadFromHandle( const char * BasePath, const int Handle, bool pRefillBuffer );
|
||||
bool ReadFromFile( const char * BasePath, const char * Path, const char * FileName );
|
||||
bool ReadFromFile( const char * BasePath, const char * FilePath );
|
||||
|
||||
Reference in New Issue
Block a user