Skip to content

Commit

Permalink
qom: provide root container for internal objs
Browse files Browse the repository at this point in the history
We have object_get_objects_root() to keep user created objects, however
no place for objects that will be used internally.  Create such a
container for internal objects.

CC: Andreas Färber <afaerber@suse.de>
CC: Markus Armbruster <armbru@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
Suggested-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 20170928025958.1420-2-peterx@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
  • Loading branch information
xzpeter authored and stefanhaRH committed Oct 3, 2017
1 parent d147f7e commit 7c47c4e
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
11 changes: 11 additions & 0 deletions include/qom/object.h
Expand Up @@ -1213,6 +1213,17 @@ Object *object_get_root(void);
*/
Object *object_get_objects_root(void);

/**
* object_get_internal_root:
*
* Get the container object that holds internally used object
* instances. Any object which is put into this container must not be
* user visible, and it will not be exposed in the QOM tree.
*
* Returns: the internal object container
*/
Object *object_get_internal_root(void);

/**
* object_get_canonical_path_component:
*
Expand Down
11 changes: 11 additions & 0 deletions qom/object.c
Expand Up @@ -1370,6 +1370,17 @@ Object *object_get_objects_root(void)
return container_get(object_get_root(), "/objects");
}

Object *object_get_internal_root(void)
{
static Object *internal_root;

if (!internal_root) {
internal_root = object_new("container");
}

return internal_root;
}

static void object_get_child_property(Object *obj, Visitor *v,
const char *name, void *opaque,
Error **errp)
Expand Down

0 comments on commit 7c47c4e

Please sign in to comment.