[Libvirt-cim] [PATCH] [CU] Merge do_ref() and do_assoc()

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Tue Dec 11 18:10:26 UTC 2007


Dan Smith wrote:
> Adding these additional clauses to do_assoc() makes the function too
> long and confusing, IMHO.  It was already rather long after recent
> additions.  Lets take this opportunity to refine it a bit.
>
> I think that we should be able to boil down the (ref_rslt == NULL) and
> (ref_rslt != NULL) cases into two small helper functions.  Each should
> build a result list.
>
> Thus, we can have two lists, one that is the result of the handler,
> and one that is to be returned.  So, we can clean it up like this:
>
>   if (ref_rslt)
>      ref_case(&handler_result, &to_return, info);
>   else
>      assoc_case(&handler_result, &to_return, info);
>   
>   if (names_only)
>      cu_return_instance_names(results, &to_return);
>   else
>      cu_return_instances(results, &to_return);
>
> The filtering case of associators would be in assoc_case(), the
> make_ref() calls would be in ref_case().
>   
This makes sense to me, and I think it's a good suggestion.  This also 
makes it clearer which piece is collecting references and which is 
collecting associators.

-- 
Kaitlin Rupert
IBM Linux Technology Center
karupert at us.ibm.com





More information about the Libvirt-cim mailing list