aqhome-react, aqhome: added units/functions for handling local variables.

This commit is contained in:
Martin Preuss
2024-05-12 17:31:31 +02:00
parent 516ac4e34e
commit 7ce34b0500
13 changed files with 402 additions and 33 deletions

View File

@@ -87,6 +87,36 @@ void _releaseData(AQH_VARS *vt)
AQH_VARS *_dupData(const AQH_VARS *vt)
{
if (vt) {
AQH_VARS *vtCopy;
vtCopy=_newData();
vtCopy->dataType=vt->dataType;
switch(vt->dataType) {
case AQH_Vars_DataType_Unknown:
break;
case AQH_Vars_DataType_Group:
case AQH_Vars_DataType_Variable:
case AQH_Vars_DataType_ValueString:
vtCopy->data.dataString=(vt->data.dataString)?strdup(vt->data.dataString):NULL;
break;
case AQH_Vars_DataType_ValueInt:
vtCopy->data.dataInt=vt->data.dataInt;
break;
case AQH_Vars_DataType_ValueDouble:
vtCopy->data.dataDouble=vt->data.dataDouble;
break;
}
return vtCopy;
}
return NULL;
}
void AQH_Vars_free(AQH_VARS *vt)
{
if (vt) {
@@ -98,6 +128,24 @@ void AQH_Vars_free(AQH_VARS *vt)
AQH_VARS *AQH_Vars_dup(const AQH_VARS *vt)
{
AQH_VARS *vtCopy;
AQH_VARS *vtChild;
vtCopy=_dupData(vt);
vtChild=AQH_Vars_Tree2_GetFirstChild(vt);
while(vtChild) {
AQH_Vars_Tree2_AddChild(vtCopy, _dupData(vtChild));
vtChild=AQH_Vars_Tree2_GetNext(vtChild);
}
return vtCopy;
}
AQH_VARS *AQH_Vars_CreateGroup(const char *s)
{
return _newStringElement(s?strdup(s):NULL, AQH_Vars_DataType_Group);
@@ -266,6 +314,13 @@ AQH_VARS *AQH_Vars_GetNextByType(const AQH_VARS *vt, AQH_VARS_DATATYPE dt)
AQH_VARS *AQH_Vars_GetGroup(AQH_VARS *vt, const char *path, uint32_t flags)
{
return vt?_getPath(vt, path, (flags & ~AQH_PATH_FLAGS_VARIABLE)):NULL;
}
int AQH_Vars_SetCharValue(AQH_VARS *vt, uint32_t flags, const char *path, const char *value)
{
if (vt) {
@@ -404,8 +459,6 @@ AQH_VARS *_getValueNodeByIdx(const AQH_VARS *vt, int idx)
AQH_VARS *_getPath(AQH_VARS *vt, const char *s, uint32_t flags)
{
return (AQH_VARS *)AQH_Path_Handle(s, (void*) vt, flags, "/", _pathHandlerFn);