X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fcomponent%2Fcomponent-class.c;h=0f5337257c4810fada3ca18272db7182bb129b0e;hb=64cadc660bbd0400df65da3534d28dbe59395ec7;hp=fa71bc94bc71439a47e1e615f982eafbe11fe15f;hpb=a67681c1f02f54bc1f708d449bceb35476024083;p=babeltrace.git diff --git a/lib/component/component-class.c b/lib/component/component-class.c index fa71bc94..0f533725 100644 --- a/lib/component/component-class.c +++ b/lib/component/component-class.c @@ -245,18 +245,52 @@ end: return ret; } -int bt_component_class_set_destroy_method( +int bt_component_class_set_accept_port_connection_method( struct bt_component_class *component_class, - bt_component_class_destroy_method destroy_method) + bt_component_class_accept_port_connection_method method) { int ret = 0; - if (!component_class || component_class->frozen || !destroy_method) { + if (!component_class || component_class->frozen || !method) { ret = -1; goto end; } - component_class->methods.destroy = destroy_method; + component_class->methods.accept_port_connection = method; + +end: + return ret; +} + +int bt_component_class_set_port_disconnected_method( + struct bt_component_class *component_class, + bt_component_class_port_disconnected_method method) +{ + int ret = 0; + + if (!component_class || component_class->frozen || !method) { + ret = -1; + goto end; + } + + component_class->methods.port_disconnected = method; + +end: + return ret; +} + +int bt_component_class_set_finalize_method( + struct bt_component_class *component_class, + bt_component_class_finalize_method finalize_method) +{ + int ret = 0; + + if (!component_class || component_class->frozen || !finalize_method) { + ret = -1; + goto end; + } + + component_class->methods.finalize = finalize_method; end: return ret; @@ -284,15 +318,15 @@ end: return ret; } -int bt_component_class_source_set_notification_iterator_destroy_method( +int bt_component_class_source_set_notification_iterator_finalize_method( struct bt_component_class *component_class, - bt_component_class_notification_iterator_destroy_method notification_iterator_destroy_method) + bt_component_class_notification_iterator_finalize_method notification_iterator_finalize_method) { struct bt_component_class_source *source_class; int ret = 0; if (!component_class || component_class->frozen || - !notification_iterator_destroy_method || + !notification_iterator_finalize_method || component_class->type != BT_COMPONENT_CLASS_TYPE_SOURCE) { ret = -1; goto end; @@ -300,8 +334,8 @@ int bt_component_class_source_set_notification_iterator_destroy_method( source_class = container_of(component_class, struct bt_component_class_source, parent); - source_class->methods.iterator.destroy = - notification_iterator_destroy_method; + source_class->methods.iterator.finalize = + notification_iterator_finalize_method; end: return ret; @@ -352,15 +386,15 @@ end: return ret; } -int bt_component_class_filter_set_notification_iterator_destroy_method( +int bt_component_class_filter_set_notification_iterator_finalize_method( struct bt_component_class *component_class, - bt_component_class_notification_iterator_destroy_method notification_iterator_destroy_method) + bt_component_class_notification_iterator_finalize_method notification_iterator_finalize_method) { struct bt_component_class_filter *filter_class; int ret = 0; if (!component_class || component_class->frozen || - !notification_iterator_destroy_method || + !notification_iterator_finalize_method || component_class->type != BT_COMPONENT_CLASS_TYPE_FILTER) { ret = -1; goto end; @@ -368,8 +402,8 @@ int bt_component_class_filter_set_notification_iterator_destroy_method( filter_class = container_of(component_class, struct bt_component_class_filter, parent); - filter_class->methods.iterator.destroy = - notification_iterator_destroy_method; + filter_class->methods.iterator.finalize = + notification_iterator_finalize_method; end: return ret; @@ -481,51 +515,6 @@ end: return ret; } -extern int bt_component_class_sink_set_add_iterator_method( - struct bt_component_class *component_class, - bt_component_class_sink_add_iterator_method add_iterator_method) -{ - struct bt_component_class_sink *sink_class; - int ret = 0; - - if (!component_class || component_class->frozen || - !add_iterator_method || - component_class->type != BT_COMPONENT_CLASS_TYPE_SINK) { - ret = -1; - goto end; - } - - sink_class = container_of(component_class, - struct bt_component_class_sink, parent); - sink_class->methods.add_iterator = add_iterator_method; - -end: - return ret; -} - -extern int bt_component_class_filter_set_add_iterator_method( - struct bt_component_class *component_class, - bt_component_class_filter_add_iterator_method add_iterator_method) -{ - struct bt_component_class_filter *filter_class; - int ret = 0; - - if (!component_class || component_class->frozen || - !add_iterator_method || - component_class->type != - BT_COMPONENT_CLASS_TYPE_FILTER) { - ret = -1; - goto end; - } - - filter_class = container_of(component_class, - struct bt_component_class_filter, parent); - filter_class->methods.add_iterator = add_iterator_method; - -end: - return ret; -} - int bt_component_class_freeze( struct bt_component_class *component_class) {