Add component class help property
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Wed, 8 Feb 2017 00:40:49 +0000 (19:40 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Sun, 28 May 2017 16:57:37 +0000 (12:57 -0400)
The help of a component class is a full text which describes its
purpose, the expected params for its constructor, etc. It does not have
to start with a description since there's already a description property for
this.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
include/babeltrace/component/component-class-internal.h
include/babeltrace/component/component-class.h
lib/component/component-class.c

index fcfe539f6a4960619ae953de0f0f203da6c0f358..856621db3ed158c28b022a59d6e20483f07f9b0a 100644 (file)
@@ -53,6 +53,7 @@ struct bt_component_class {
        enum bt_component_class_type type;
        GString *name;
        GString *description;
+       GString *help;
        struct {
                bt_component_class_init_method init;
                bt_component_class_destroy_method destroy;
index 664d7bcf2e153c454905017f54a4ea6629e3ff0a..aee2474085a8556aae13842ce121dd2573bc30f9 100644 (file)
@@ -85,6 +85,10 @@ extern int bt_component_class_set_description(
                struct bt_component_class *component_class,
                const char *description);
 
+extern int bt_component_class_set_help(
+               struct bt_component_class *component_class,
+               const char *help);
+
 extern int bt_component_class_freeze(
                struct bt_component_class *component_class);
 
@@ -109,6 +113,9 @@ extern const char *bt_component_class_get_name(
 extern const char *bt_component_class_get_description(
                struct bt_component_class *component_class);
 
+extern const char *bt_component_class_get_help(
+               struct bt_component_class *component_class);
+
 /**
  * Get a component class' type.
  *
index 1f6e680aa7efb01d2115764f6c8befffa52e3320..a008042190d78d007c6d571c0ee3669436cb9950 100644 (file)
@@ -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)
This page took 0.026531 seconds and 4 git commands to generate.