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 )
|
bool CDataTree::DestroyMember( TDataMember ** Member )
|
||||||
{
|
{
|
||||||
TDataMember * NextMember;
|
TDataMember * NextMember;
|
||||||
@@ -268,8 +266,12 @@ TDataMember * CDataTree::GetMember( TDataMember * BaseMember, const char * Path
|
|||||||
TDataMember ** Member;
|
TDataMember ** Member;
|
||||||
|
|
||||||
// Get Child
|
// Get Child
|
||||||
Member = GetMemberPtr( BaseMember, Path, Create );
|
if (!Path || !*Path) {
|
||||||
return ((Member)? *Member : NULL);
|
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 )
|
bool CJSONparse::ReadFromBuffer( const char * BasePath )
|
||||||
{
|
{
|
||||||
TDataMember * BaseMember = NULL;
|
TDataMember * BaseMember = NULL;
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ public:
|
|||||||
bool ReadFromBuffer( const char * BasePath );
|
bool ReadFromBuffer( const char * BasePath );
|
||||||
|
|
||||||
// Input
|
// Input
|
||||||
|
bool ReadFromString( const char * BasePath, const char * InString, const int Len );
|
||||||
bool ReadFromHandle( const char * BasePath, const int Handle, bool pRefillBuffer );
|
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 * Path, const char * FileName );
|
||||||
bool ReadFromFile( const char * BasePath, const char * FilePath );
|
bool ReadFromFile( const char * BasePath, const char * FilePath );
|
||||||
|
|||||||
Reference in New Issue
Block a user