-
-struct bt_value *bt_component_class_query(
- struct bt_component_class *component_class,
- const char *object, struct bt_value *params)
-{
- struct bt_value *results = NULL;
-
- if (!component_class) {
- BT_LOGW_STR("Invalid parameter: component class is NULL.");
- goto end;
- }
-
- if (!object) {
- BT_LOGW_STR("Invalid parameter: object string is NULL.");
- goto end;
- }
-
- if (!params) {
- BT_LOGW_STR("Invalid parameter: parameters value is NULL.");
- goto end;
- }
-
- if (!component_class->methods.query) {
- /* Not an error: nothing to query */
- BT_LOGD("Component class has no registered query method: "
- "addr=%p, name=\"%s\", type=%s",
- component_class,
- bt_component_class_get_name(component_class),
- bt_component_class_type_string(component_class->type));
- goto end;
- }
-
- BT_LOGD("Calling user's query method: "
- "comp-class-addr=%p, comp-class-name=\"%s\", comp-class-type=%s"
- "object=\"%s\", params-addr=%p",
- component_class,
- bt_component_class_get_name(component_class),
- bt_component_class_type_string(component_class->type),
- object, params);
- results = component_class->methods.query(component_class,
- object, params);
- BT_LOGD("User method returned: results-addr=%p", results);
-
-end:
- return results;
-}