示例#1
0
SOL_API void
sol_oic_resource_unref(struct sol_oic_resource *r)
{
    SOL_NULL_CHECK(r);
    OIC_RESOURCE_CHECK_API(r);

    r->refcnt--;
    if (!r->refcnt) {
        struct sol_str_slice *slice;
        uint16_t idx;

        free((char *)r->href.data);
        free((char *)r->device_id.data);

        SOL_VECTOR_FOREACH_IDX (&r->types, slice, idx)
            free((char *)slice->data);
        sol_vector_clear(&r->types);

        SOL_VECTOR_FOREACH_IDX (&r->interfaces, slice, idx)
            free((char *)slice->data);
        sol_vector_clear(&r->interfaces);

        free(r);
    }
}
示例#2
0
SOL_API struct sol_oic_resource *
sol_oic_resource_ref(struct sol_oic_resource *r)
{
    SOL_NULL_CHECK(r, NULL);
    OIC_RESOURCE_CHECK_API(r, NULL);

    r->refcnt++;
    return r;
}
示例#3
0
SOL_API void
sol_oic_resource_unref(struct sol_oic_resource *r)
{
    SOL_NULL_CHECK(r);
    OIC_RESOURCE_CHECK_API(r);

    r->refcnt--;
    if (!r->refcnt) {
        free((char *)r->href.data);
        free((char *)r->device_id.data);

        sol_vector_clear(&r->types);
        free(r->types_data);

        sol_vector_clear(&r->interfaces);
        free(r->interfaces_data);

        free(r);
    }
}