Пример #1
0
rpc_svc_instance_t * instance_retrieve_1_svc (svc_id_t id, svc_id_t i_id,
                                              struct svc_req * req)
{
    static rpc_svc_instance_t result;
    svc_instance_t * inst;

    if (!(inst = _find_instance (id, i_id)))
        return 0;

    result = svc_instance_to_rpc_svc_instance (inst);

    return &result;
}
Пример #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;
}