示例#1
0
void destroy_svc (svc_t * delSvc)
{
    for (inst_list_iterator it = inst_list_begin (delSvc->instances);
         it != NULL; inst_list_iterator_next (&it))
    {
        destroy_instance (it->val);
    }
    List_destroy (delSvc->instances);
    destroy_properties_list (delSvc->properties);
    free (delSvc->name);
    free (delSvc);
}
示例#2
0
rpc_svc_t svc_to_rpc_svc (svc_t * svc)
{
    register unsigned i_cnt = 0, i_index = 0;
    rpc_svc_t newRpc_svc;

    if (!svc)
    {
        newRpc_svc.name = strdup ("NULL");
        return newRpc_svc;
    }

    newRpc_svc.id = svc->id;
    newRpc_svc.name = strdup (svc->name);

    i_cnt = List_count (svc->instances);
    newRpc_svc.instances.instances_len = i_cnt;

    if (i_cnt > 0)
    {
        newRpc_svc.instances.instances_val =
            malloc (i_cnt * sizeof (rpc_svc_instance_t));
        if (newRpc_svc.instances.instances_val)
            for (inst_list_iterator it = inst_list_begin (svc->instances);
                 it != NULL; inst_list_iterator_next (&it))
            {
                newRpc_svc.instances.instances_val[i_index++] =
                    svc_instance_to_rpc_svc_instance (it->val);
            }
    }
    else
        newRpc_svc.instances.instances_val = 0;

    newRpc_svc.properties.properties_len = List_count (svc->properties);
    newRpc_svc.properties.properties_val =
        property_list_to_rpc_property_array (svc->properties);

    return newRpc_svc;
}