+ filter_class->methods.iterator.seek_time =
+ notification_iterator_seek_time_method;
+
+end:
+ return ret;
+}
+
+int bt_component_class_set_description(
+ struct bt_component_class *component_class,
+ const char *description)
+{
+ int ret = 0;
+
+ if (!component_class || component_class->frozen || !description) {
+ ret = -1;
+ goto end;
+ }
+
+ g_string_assign(component_class->description, description);
+
+end:
+ return ret;
+}
+
+int bt_component_class_set_help(
+ struct bt_component_class *component_class,
+ const char *help)
+{
+ int ret = 0;
+
+ if (!component_class || component_class->frozen || !help) {
+ ret = -1;
+ goto end;
+ }
+
+ g_string_assign(component_class->help, help);
+
+end:
+ return ret;
+}
+
+const char *bt_component_class_get_name(
+ struct bt_component_class *component_class)
+{
+ return component_class ? component_class->name->str : NULL;
+}
+
+enum bt_component_class_type bt_component_class_get_type(
+ struct bt_component_class *component_class)
+{
+ return component_class ? component_class->type :
+ BT_COMPONENT_CLASS_TYPE_UNKNOWN;
+}
+
+const char *bt_component_class_get_description(
+ struct bt_component_class *component_class)
+{
+ return component_class && component_class->description &&
+ component_class->description->str[0] != '\0' ?
+ component_class->description->str : NULL;
+}
+
+const char *bt_component_class_get_help(
+ struct bt_component_class *component_class)
+{
+ return component_class && component_class->help &&
+ component_class->help->str[0] != '\0' ?
+ component_class->help->str : NULL;
+}
+
+BT_HIDDEN
+int bt_component_class_add_destroy_listener(struct bt_component_class *class,
+ bt_component_class_destroy_listener_func func, void *data)
+{
+ int ret = 0;
+ struct bt_component_class_destroy_listener listener;
+
+ if (!class || class->frozen || !func) {
+ ret = -1;
+ goto end;
+ }
+
+ listener.func = func;
+ listener.data = data;
+ g_array_append_val(class->destroy_listeners, listener);