Remove the need to implement the notification iterator's "get" method
[babeltrace.git] / lib / component / component-class.c
index 4e337e030876fd5accb698f7a405817d873e64f3..f3cbb4222fdb8e4507877b1254278915e6f4d33b 100644 (file)
@@ -107,14 +107,12 @@ end:
 }
 
 struct bt_component_class *bt_component_class_source_create(const char *name,
-               bt_component_class_notification_iterator_get_method notification_iterator_get_method,
                bt_component_class_notification_iterator_next_method notification_iterator_next_method)
 {
        struct bt_component_class_source *source_class = NULL;
        int ret;
 
-       if (!name || !notification_iterator_get_method ||
-                       !notification_iterator_next_method) {
+       if (!name || !notification_iterator_next_method) {
                goto end;
        }
 
@@ -135,7 +133,6 @@ struct bt_component_class *bt_component_class_source_create(const char *name,
                goto end;
        }
 
-       source_class->methods.iterator.get = notification_iterator_get_method;
        source_class->methods.iterator.next = notification_iterator_next_method;
 
 end:
@@ -143,14 +140,12 @@ end:
 }
 
 struct bt_component_class *bt_component_class_filter_create(const char *name,
-               bt_component_class_notification_iterator_get_method notification_iterator_get_method,
                bt_component_class_notification_iterator_next_method notification_iterator_next_method)
 {
        struct bt_component_class_filter *filter_class = NULL;
        int ret;
 
-       if (!name || !notification_iterator_get_method ||
-                       !notification_iterator_next_method) {
+       if (!name || !notification_iterator_next_method) {
                goto end;
        }
 
@@ -171,7 +166,6 @@ struct bt_component_class *bt_component_class_filter_create(const char *name,
                goto end;
        }
 
-       filter_class->methods.iterator.get = notification_iterator_get_method;
        filter_class->methods.iterator.next = notification_iterator_next_method;
 
 end:
@@ -228,35 +222,69 @@ end:
        return ret;
 }
 
-int bt_component_class_set_query_info_method(
+int bt_component_class_set_query_method(
                struct bt_component_class *component_class,
-               bt_component_class_query_info_method query_info_method)
+               bt_component_class_query_method query_method)
 {
        int ret = 0;
 
-       if (!component_class || component_class->frozen || !query_info_method) {
+       if (!component_class || component_class->frozen || !query_method) {
                ret = -1;
                goto end;
        }
 
-       component_class->methods.query_info = query_info_method;
+       component_class->methods.query = query_method;
 
 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 +312,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 +328,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 +380,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 +396,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 +509,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)
 {
@@ -542,19 +525,19 @@ end:
        return ret;
 }
 
-struct bt_value *bt_component_class_query_info(
+struct bt_value *bt_component_class_query(
                struct bt_component_class *component_class,
-               const char *action, struct bt_value *params)
+               const char *object, struct bt_value *params)
 {
        struct bt_value *results = NULL;
 
-       if (!component_class || !action || !params ||
-                       !component_class->methods.query_info) {
+       if (!component_class || !object || !params ||
+                       !component_class->methods.query) {
                goto end;
        }
 
-       results = component_class->methods.query_info(component_class,
-               action, params);
+       results = component_class->methods.query(component_class,
+               object, params);
 
 end:
        return results;
This page took 0.036848 seconds and 4 git commands to generate.