• D
    qom: Add object_new_with_props() / object_new_withpropv() helpers · a31bdae5
    Daniel P. Berrange 提交于
    It is reasonably common to want to create an object, set a
    number of properties, register it in the hierarchy and then
    mark it as complete (if a user creatable type). This requires
    quite a lot of error prone, verbose, boilerplate code to achieve.
    
    First a pair of functions object_set_props() / object_set_propv()
    are added which allow for a list of objects to be set in
    one single API call.
    
    Then object_new_with_props() / object_new_with_propv() constructors
    are added which simplify the sequence of calls to create an
    object, populate properties, register in the object composition
    tree and mark the object complete, into a single method call.
    
    Usage would be:
    
       Error *err = NULL;
       Object *obj;
       obj = object_new_with_propv(TYPE_MEMORY_BACKEND_FILE,
                                   object_get_objects_root(),
                                   "hostmem0",
                                   &err,
                                   "share", "yes",
                                   "mem-path", "/dev/shm/somefile",
                                   "prealloc", "yes",
                                   "size", "1048576",
                                   NULL);
    
    Note all property values are passed in string form and will
    be parsed into their required data types, using normal QOM
    semantics for parsing from string format.
    Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    Signed-off-by: NAndreas Färber <afaerber@suse.de>
    a31bdae5
object.c 47.8 KB