in serializer/src/agenttypesystem.c [1016:1232]
void Destroy_AGENT_DATA_TYPE(AGENT_DATA_TYPE* agentData)
{
if(agentData==NULL)
{
LogError("agentData was NULL.");
}
else
{
switch(agentData->type)
{
default:
{
LogError("invalid agentData");
break;
}
case(EDM_NO_TYPE):
{
LogError("invalid agentData");
break;
}
case(EDM_BINARY_TYPE):
{
/*destroying means maybe deallocating some memory*/
free(agentData->value.edmBinary.data); /* If ptr is a null pointer, no action occurs*/
agentData->value.edmBinary.data = NULL;
break;
}
case(EDM_BOOLEAN_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_BYTE_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_DATE_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_DATE_TIME_OFFSET_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_DECIMAL_TYPE):
{
STRING_delete(agentData->value.edmDecimal.value);
agentData->value.edmDecimal.value = NULL;
break;
}
case(EDM_DURATION_TYPE):
{
LogError("EDM_DURATION_TYPE not implemented");
break;
}
case(EDM_GUID_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_INT16_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_INT32_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_INT64_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_SBYTE_TYPE):
{
/*nothing to do*/
break;
}
case(EDM_STREAM):
{
LogError("EDM_STREAM not implemented");
break;
}
case(EDM_STRING_TYPE):
{
if (agentData->value.edmString.chars != NULL)
{
free(agentData->value.edmString.chars);
agentData->value.edmString.chars = NULL;
}
break;
}
case(EDM_STRING_NO_QUOTES_TYPE) :
{
if (agentData->value.edmStringNoQuotes.chars != NULL)
{
free(agentData->value.edmStringNoQuotes.chars);
agentData->value.edmStringNoQuotes.chars = NULL;
}
break;
}
case(EDM_TIME_OF_DAY_TYPE) :
{
LogError("EDM_TIME_OF_DAY_TYPE not implemented");
break;
}
case(EDM_GEOGRAPHY_TYPE):
{
LogError("EDM_GEOGRAPHY_TYPE not implemented");
break;
}
case(EDM_GEOGRAPHY_POINT_TYPE):
{
LogError("EDM_GEOGRAPHY_POINT_TYPE not implemented");
break;
}
case(EDM_GEOGRAPHY_LINE_STRING_TYPE):
{
LogError("EDM_GEOGRAPHY_LINE_STRING_TYPE not implemented");
break;
}
case(EDM_GEOGRAPHY_POLYGON_TYPE):
{
LogError("EDM_GEOGRAPHY_POLYGON_TYPE not implemented");
break;
}
case(EDM_GEOGRAPHY_MULTI_POINT_TYPE):
{
LogError("EDM_GEOGRAPHY_MULTI_POINT_TYPE not implemented");
break;
}
case(EDM_GEOGRAPHY_MULTI_LINE_STRING_TYPE):
{
LogError("EDM_GEOGRAPHY_MULTI_LINE_STRING_TYPE not implemented");
break;
}
case(EDM_GEOGRAPHY_MULTI_POLYGON_TYPE):
{
LogError("EDM_GEOGRAPHY_MULTI_POLYGON_TYPE");
break;
}
case(EDM_GEOGRAPHY_COLLECTION_TYPE):
{
LogError("EDM_GEOGRAPHY_COLLECTION_TYPE not implemented");
break;
}
case(EDM_GEOMETRY_TYPE):
{
LogError("EDM_GEOMETRY_TYPE not implemented");
break;
}
case(EDM_GEOMETRY_POINT_TYPE):
{
LogError("EDM_GEOMETRY_POINT_TYPE not implemented");
break;
}
case(EDM_GEOMETRY_LINE_STRING_TYPE):
{
LogError("EDM_GEOMETRY_LINE_STRING_TYPE not implemented");
break;
}
case(EDM_GEOMETRY_POLYGON_TYPE):
{
LogError("EDM_GEOMETRY_POLYGON_TYPE not implemented");
break;
}
case(EDM_GEOMETRY_MULTI_POINT_TYPE):
{
LogError("EDM_GEOMETRY_MULTI_POINT_TYPE not implemented");
break;
}
case(EDM_GEOMETRY_MULTI_LINE_STRING_TYPE):
{
LogError("EDM_GEOMETRY_MULTI_LINE_STRING_TYPE not implemented");
break;
}
case(EDM_GEOMETRY_MULTI_POLYGON_TYPE):
{
LogError("EDM_GEOMETRY_MULTI_POLYGON_TYPE not implemented");
break;
}
case(EDM_GEOMETRY_COLLECTION_TYPE):
{
LogError("EDM_GEOMETRY_COLLECTION_TYPE not implemented");
break;
}
case(EDM_SINGLE_TYPE):
{
break;
}
case(EDM_DOUBLE_TYPE):
{
break;
}
case (EDM_COMPLEX_TYPE_TYPE):
{
size_t i;
for (i = 0; i < agentData->value.edmComplexType.nMembers; i++)
{
free((void*)(agentData->value.edmComplexType.fields[i].fieldName));
agentData->value.edmComplexType.fields[i].fieldName = NULL;
Destroy_AGENT_DATA_TYPE(agentData->value.edmComplexType.fields[i].value);
free(agentData->value.edmComplexType.fields[i].value);
agentData->value.edmComplexType.fields[i].value = NULL;
}
free(agentData->value.edmComplexType.fields);
break;
}
}
agentData->type = EDM_NO_TYPE; /*mark as detroyed*/
}
}