X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fcomponent%2Fcomponent-class.c;h=a008042190d78d007c6d571c0ee3669436cb9950;hb=5536d9a6266c3f1f48e21dc434788261686965a7;hp=1f6e680aa7efb01d2115764f6c8befffa52e3320;hpb=7eb483595b72fd45fbb3aebbe2684c46e95b0051;p=babeltrace.git diff --git a/lib/component/component-class.c b/lib/component/component-class.c index 1f6e680a..a0080421 100644 --- a/lib/component/component-class.c +++ b/lib/component/component-class.c @@ -57,6 +57,9 @@ void bt_component_class_destroy(struct bt_object *obj) if (class->description) { g_string_free(class->description, TRUE); } + if (class->help) { + g_string_free(class->help, TRUE); + } if (class->destroy_listeners) { g_array_free(class->destroy_listeners, TRUE); } @@ -82,6 +85,11 @@ int bt_component_class_init(struct bt_component_class *class, goto error; } + class->help = g_string_new(NULL); + if (!class->help) { + goto error; + } + class->destroy_listeners = g_array_new(FALSE, TRUE, sizeof(struct bt_component_class_destroy_listener)); if (!class->destroy_listeners) { @@ -390,6 +398,23 @@ 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) { @@ -410,6 +435,13 @@ const char *bt_component_class_get_description( 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 : NULL; +} + BT_HIDDEN int bt_component_class_add_destroy_listener(struct bt_component_class *class, bt_component_class_destroy_listener_func func, void *data)