Message ID | 20170928025958.1420-2-peterx@redhat.com |
---|---|
State | New |
Headers | show |
Series | [v4,1/5] qom: provide root container for internal objs | expand |
On Thu, 09/28 10:59, Peter Xu wrote: > 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> > --- > include/qom/object.h | 11 +++++++++++ > qom/object.c | 11 +++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/include/qom/object.h b/include/qom/object.h > index f3e5cff37a..e0d9824415 100644 > --- a/include/qom/object.h > +++ b/include/qom/object.h > @@ -1214,6 +1214,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: > * > * Returns: The final component in the object's canonical path. The canonical > diff --git a/qom/object.c b/qom/object.c > index 3e18537e9b..6a7bd9257b 100644 > --- a/qom/object.c > +++ b/qom/object.c > @@ -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) > -- > 2.13.5 > Reviewed-by: Fam Zheng <famz@redhat.com>
diff --git a/include/qom/object.h b/include/qom/object.h index f3e5cff37a..e0d9824415 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1214,6 +1214,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: * * Returns: The final component in the object's canonical path. The canonical diff --git a/qom/object.c b/qom/object.c index 3e18537e9b..6a7bd9257b 100644 --- a/qom/object.c +++ b/qom/object.c @@ -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)
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> --- include/qom/object.h | 11 +++++++++++ qom/object.c | 11 +++++++++++ 2 files changed, 22 insertions(+)