X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fcomponent%2Fcomponent-class.h;h=29b66ecb17209866ad36092690e3695a0b8be5e9;hb=64cadc660bbd0400df65da3534d28dbe59395ec7;hp=6135343ec3505b54fff9ad9e15bc277c4f7bb5c5;hpb=a67681c1f02f54bc1f708d449bceb35476024083;p=babeltrace.git diff --git a/include/babeltrace/component/component-class.h b/include/babeltrace/component/component-class.h index 6135343e..29b66ecb 100644 --- a/include/babeltrace/component/component-class.h +++ b/include/babeltrace/component/component-class.h @@ -26,12 +26,19 @@ */ #include +#include #ifdef __cplusplus extern "C" { #endif struct bt_component_class; +struct bt_component; +struct bt_private_component; +struct bt_private_port; +struct bt_port; +struct bt_value; +struct bt_private_notification_iterator; /** * Component class type. @@ -50,40 +57,64 @@ enum bt_component_class_type { }; typedef enum bt_component_status (*bt_component_class_init_method)( - struct bt_component *component, struct bt_value *params, - void *init_method_data); + struct bt_private_component *private_component, + struct bt_value *params, void *init_method_data); -typedef void (*bt_component_class_destroy_method)(struct bt_component *component); +typedef void (*bt_component_class_finalize_method)( + struct bt_private_component *private_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); + struct bt_private_component *private_component, + struct bt_private_port *private_port, + struct bt_private_notification_iterator *private_notification_iterator); -typedef void (*bt_component_class_notification_iterator_destroy_method)( - struct bt_notification_iterator *iterator); +typedef void (*bt_component_class_notification_iterator_finalize_method)( + struct bt_private_notification_iterator *private_notification_iterator); typedef struct bt_notification *(*bt_component_class_notification_iterator_get_method)( - struct bt_notification_iterator *iterator); + struct bt_private_notification_iterator *private_notification_iterator); typedef enum bt_notification_iterator_status (*bt_component_class_notification_iterator_next_method)( - struct bt_notification_iterator *iterator); + struct bt_private_notification_iterator *private_notification_iterator); typedef enum bt_notification_iterator_status (*bt_component_class_notification_iterator_seek_time_method)( - struct bt_notification_iterator *iterator, int64_t time); + struct bt_private_notification_iterator *private_notification_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); +typedef enum bt_component_status (*bt_component_class_accept_port_connection_method)( + struct bt_private_component *private_component, + struct bt_private_port *self_private_port, + struct bt_port *other_port); + +typedef void (*bt_component_class_port_disconnected_method)( + struct bt_private_component *private_component, + struct bt_private_port *private_port); + extern int bt_component_class_set_init_method( struct bt_component_class *component_class, bt_component_class_init_method init_method); -extern int bt_component_class_set_destroy_method( +extern int bt_component_class_set_finalize_method( + struct bt_component_class *component_class, + bt_component_class_finalize_method finalize_method); + +extern int bt_component_class_set_accept_port_connection_method( + struct bt_component_class *component_class, + bt_component_class_accept_port_connection_method accept_port_connection_method); + +extern int bt_component_class_set_port_disconnected_method( + struct bt_component_class *component_class, + bt_component_class_port_disconnected_method port_disconnected_method); + +extern int bt_component_class_set_query_method( struct bt_component_class *component_class, - bt_component_class_destroy_method destroy_method); + bt_component_class_query_method query_method); extern int bt_component_class_set_description( struct bt_component_class *component_class, @@ -120,10 +151,6 @@ extern const char *bt_component_class_get_description( 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);