X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fcomponent%2Fcomponent-class.h;h=6135343ec3505b54fff9ad9e15bc277c4f7bb5c5;hb=a67681c1f02f54bc1f708d449bceb35476024083;hp=ad259b29c79534d6969d9e9eae866a0d085735b3;hpb=d3e4dcd8e7a601e0aa063455147f29fbe051582b;p=babeltrace.git diff --git a/include/babeltrace/component/component-class.h b/include/babeltrace/component/component-class.h index ad259b29..6135343e 100644 --- a/include/babeltrace/component/component-class.h +++ b/include/babeltrace/component/component-class.h @@ -50,10 +50,33 @@ enum bt_component_class_type { }; typedef enum bt_component_status (*bt_component_class_init_method)( - struct bt_component *component, struct bt_value *params); + struct bt_component *component, struct bt_value *params, + void *init_method_data); typedef void (*bt_component_class_destroy_method)(struct bt_component *component); +typedef enum bt_notification_iterator_status + (*bt_component_class_notification_iterator_init_method)( + struct bt_component *component, + struct bt_notification_iterator *iterator, void *init_method_data); + +typedef void (*bt_component_class_notification_iterator_destroy_method)( + struct bt_notification_iterator *iterator); + +typedef struct bt_notification *(*bt_component_class_notification_iterator_get_method)( + struct bt_notification_iterator *iterator); + +typedef enum bt_notification_iterator_status (*bt_component_class_notification_iterator_next_method)( + struct bt_notification_iterator *iterator); + +typedef enum bt_notification_iterator_status + (*bt_component_class_notification_iterator_seek_time_method)( + struct bt_notification_iterator *iterator, int64_t time); + +typedef struct bt_value *(*bt_component_class_query_method)( + struct bt_component_class *component_class, + const char *object, struct bt_value *params); + extern int bt_component_class_set_init_method( struct bt_component_class *component_class, bt_component_class_init_method init_method); @@ -66,6 +89,13 @@ 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); + /** * Get a component class' name. * @@ -87,6 +117,17 @@ 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); + +extern int bt_component_class_set_query_method( + struct bt_component_class *component_class, + bt_component_class_query_method query_method); + +extern struct bt_value *bt_component_class_query( + struct bt_component_class *component_class, + const char *object, struct bt_value *params); + /** * Get a component class' type. *