- struct bt_component_class_source *source_class;
- int ret = 0;
-
- if (!component_class) {
- BT_LOGW_STR("Invalid parameter: component class is NULL.");
- ret = -1;
- goto end;
- }
-
- if (!method) {
- BT_LOGW_STR("Invalid parameter: method is NULL.");
- ret = -1;
- goto end;
- }
-
- if (component_class->type != BT_COMPONENT_CLASS_TYPE_SOURCE) {
- BT_LOGW("Invalid parameter: component class is not a source component class: "
- "addr=%p, name=\"%s\", type=%s",
- component_class,
- bt_component_class_get_name(component_class),
- bt_component_class_type_string(component_class->type));
- ret = -1;
- goto end;
- }
-
- if (component_class->frozen) {
- BT_LOGW("Invalid parameter: component class is frozen: "
- "addr=%p, name=\"%s\", type=%s",
- component_class,
- bt_component_class_get_name(component_class),
- bt_component_class_type_string(component_class->type));
- ret = -1;
- goto end;
- }
-
- source_class = container_of(component_class,
- struct bt_component_class_source, parent);
- source_class->methods.iterator.init = method;
- BT_LOGV("Set filter component class's notification iterator initialization method: "
- "addr=%p, name=\"%s\", method-addr=%p",
- component_class,
- bt_component_class_get_name(component_class),
- method);
-
-end:
- return ret;
+ struct bt_component_class_source *comp_cls = (void *) priv_comp_cls;
+
+ BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class");
+ BT_ASSERT_PRE_NON_NULL(method, "Method");
+ BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls);
+ comp_cls->methods.query = method;
+ BT_LIB_LOGV("Set source component class's query method: "
+ "%!+C", comp_cls);
+ return 0;