qom: Add object_get_container()
authorPeter Xu <peterx@redhat.com>
Thu, 21 Nov 2024 19:22:00 +0000 (14:22 -0500)
committerPhilippe Mathieu-Daudé <philmd@linaro.org>
Thu, 9 Jan 2025 17:16:24 +0000 (18:16 +0100)
Add a helper to fetch a root container (under object_get_root()).  Sanity
check on the type of the object.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-ID: <20241121192202.4155849-12-peterx@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
include/qom/object.h
qom/object.c

index 95d6e064d9be96fcc2be5ba709f094ae1ae12424..bcf9910b42cc46ad89deab7ddd8215deeb1143d3 100644 (file)
@@ -1510,6 +1510,16 @@ const char *object_property_get_type(Object *obj, const char *name,
  */
 Object *object_get_root(void);
 
+/**
+ * object_get_container:
+ * @name: the name of container to lookup
+ *
+ * Lookup a root level container.
+ *
+ * Returns: the container with @name.
+ */
+Object *object_get_container(const char *name);
+
 
 /**
  * object_get_objects_root:
index b4c52d055d92d7554a82f67d4805005588ffbfec..81c06906d300b7ebb877dc949764d5b421274b16 100644 (file)
@@ -1751,6 +1751,16 @@ static Object *object_root_initialize(void)
     return root;
 }
 
+Object *object_get_container(const char *name)
+{
+    Object *container;
+
+    container = object_resolve_path_component(object_get_root(), name);
+    assert(object_dynamic_cast(container, TYPE_CONTAINER));
+
+    return container;
+}
+
 Object *object_get_root(void)
 {
     static Object *root;