示例#1
0
void Array_FreeItem(ArrayItem * valueItem, AwaResourceType resourceType)
{
    if (resourceType == AwaResourceType_OpaqueArray)
    {
        AwaOpaque * opaque = (AwaOpaque *)valueItem->Value;
        LogFree("AwaArray.OpaqueData", opaque->Data);
        Awa_MemSafeFree(opaque->Data);
    }
    Array_FreeItemValue(valueItem);
    LogFree("AwaArray.Item", valueItem);
    Awa_MemSafeFree(valueItem);
}
示例#2
0
void StringIterator_Free(StringIterator ** iterator)
{
    if ((iterator != NULL) && (*iterator != NULL))
    {
        // free memory managed by iterator:
        Iterator_FreeValues((*iterator)->Iterator);
        Iterator_Free(&(*iterator)->Iterator);
        LogFree("StringIterator", *iterator);
        Awa_MemSafeFree(*iterator);
        *iterator = NULL;
    }
}
示例#3
0
void OperationCommon_Free(OperationCommon ** operation)
{
    if ((operation != NULL) && (*operation != NULL))
    {
        // do not free the session, it is not owned by the operation

        Tree_DetachNode((*operation)->ObjectsTree);
        ObjectsTree_Free((*operation)->ObjectsTree);

        LogFree("OperationCommon", operation);
        Awa_MemSafeFree(*operation);
        *operation = NULL;
    }
}
示例#4
0
AwaError AwaServerExecuteOperation_Free(AwaServerExecuteOperation ** operation)
{
    AwaError result = AwaError_OperationInvalid;
    if ((operation != NULL) && (*operation != NULL))
    {
        ServerOperation_Free(&(*operation)->ServerOperation);
        ServerResponse_Free(&(*operation)->Response);
        LogFree("AwaServerExecuteOperation", *operation);
        Awa_MemSafeFree(*operation);
        *operation = NULL;
        result = AwaError_Success;
    }
    return result;
}
示例#5
0
AwaError ChangeSet_Free(AwaChangeSet ** changeSet)
{
    AwaError result = AwaError_OperationInvalid;
    if ((changeSet != NULL) && (*changeSet != NULL))
    {
        LogFree("AwaChangeSet", *changeSet);
        ResponseCommon_Free(&(*changeSet)->ResponseCommon);
        OperationCommon_Free(&(*changeSet)->OperationCommon);
        Awa_MemSafeFree(*changeSet);
        *changeSet = NULL;
        result = AwaError_Success;
    }
    return result;
}
AwaError AwaServerListClientsOperation_Free(AwaServerListClientsOperation ** operation)
{
    AwaError result = AwaError_OperationInvalid;
    if ((operation != NULL) && (*operation != NULL))
    {
        ServerResponse_Free(&(*operation)->ServerResponse);
        ServerOperation_Free(&(*operation)->ServerOperation);

        Map_FreeValues((*operation)->ClientResponseMap);
        Map_Free(&((*operation)->ClientResponseMap));

        LogFree("AwaServerListClientsOperation", *operation);
        Awa_MemSafeFree(*operation);
        *operation = NULL;
        result = AwaError_Success;
    }
    return result;
}
示例#7
0
AwaError AwaClientSetOperation_Free(AwaClientSetOperation ** operation)
{
    AwaError result = AwaError_OperationInvalid;
    if ((operation != NULL) && (*operation != NULL))
    {
        OperationCommon_Free(&(*operation)->Common);

        if ((*operation)->Response != NULL)
        {
            ResponseCommon_Free(&(*operation)->Response);
        }

        LogFree("AwaClientSetOperation", *operation);
        Awa_MemSafeFree(*operation);
        *operation = NULL;
        result = AwaError_Success;
    }
    return result;
}
AwaError ResponseCommon_Free(ResponseCommon ** response)
{
    AwaError result = AwaError_Unspecified;
    if ((response != NULL) && (*response != NULL))
    {
        LogFree("ResponseCommon", *response);
        FreeSimpleMap(&((*response)->PathResults));
        FreeSimpleMap(&((*response)->NulledValues));
        FreeValues(&((*response)->Values));
        Tree_Delete((*response)->ObjectsNode);
        Awa_MemSafeFree(*response);
        *response = NULL;
        result = AwaError_Success;
    }
    else
    {
        result = AwaError_OperationInvalid;
    }
    return result;
}
示例#9
0
AwaError AwaClientSubscribeOperation_Free(AwaClientSubscribeOperation ** operation)
{
    AwaError result = AwaError_OperationInvalid;
    if (operation != NULL && *operation != NULL)
    {
        OperationCommon_Free(&(*operation)->Common);
        Map_ForEach((*operation)->Subscribers, RemoveSubscriptionLinkToOperation, *operation);
        Map_Free(&(*operation)->Subscribers);

        if ((*operation)->Response != NULL)
        {
            SubscribeResponse_Free(&(*operation)->Response);
        }

        LogFree("AwaClientSubscribeOperation", *operation);
        Awa_MemSafeFree(*operation);
        *operation = NULL;
        result = AwaError_Success;
    }
    return result;
}
示例#10
0
AwaError AwaServerSession_Free(AwaServerSession ** session)
{
    AwaError result = AwaError_Success;
    if ((session != NULL) && (*session != NULL))
    {
        SessionCommon_Free(&((*session)->SessionCommon));
        (*session)->SessionCommon = NULL;

        Map_ForEach((*session)->Observers, RemoveObservationLinkToSession, NULL);
        Map_Free(&(*session)->Observers);
        Queue_Free(&((*session)->NotificationQueue));

        // Free the session itself
        LogFree("AwaServerSession", *session);
        Awa_MemSafeFree(*session);
        *session = NULL;
    }
    else
    {
        result = LogErrorWithEnum(AwaError_SessionInvalid, "Session is NULL");
    }
    return result;
}
示例#11
0
void Array_FreeItemValue(ArrayItem * valueItem)
{
    LogFree("AwaArray.Item.Value",  valueItem->Value);
    Awa_MemSafeFree(valueItem->Value);
    valueItem->Value = NULL;
}