X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=src%2Flib%2Fgraph%2Fcomponent-class.h;h=5974d832a9a9ecc0cfee298f4f4a4fd2f8c1378d;hp=2b4b9454f4cd9eb1ca64a03f8db86ee8596d935e;hb=41a3efcdbbdd863c3a10a9aefa8d725d3257d77c;hpb=a3f0c7db90f4cfc81090a83a7442b7bc624d5789 diff --git a/src/lib/graph/component-class.h b/src/lib/graph/component-class.h index 2b4b9454..5974d832 100644 --- a/src/lib/graph/component-class.h +++ b/src/lib/graph/component-class.h @@ -64,8 +64,13 @@ struct bt_component_class { struct bt_plugin_so_shared_lib_handle *so_handle; }; -struct bt_component_class_source { +struct bt_component_class_with_iterator_class { struct bt_component_class parent; + bt_message_iterator_class *msg_iter_cls; +}; + +struct bt_component_class_source { + struct bt_component_class_with_iterator_class parent; struct { bt_component_class_source_get_supported_mip_versions_method get_supported_mip_versions; bt_component_class_source_initialize_method init; @@ -73,7 +78,18 @@ struct bt_component_class_source { bt_component_class_source_query_method query; bt_component_class_source_output_port_connected_method output_port_connected; } methods; - bt_message_iterator_class *msg_iter_cls; +}; + +struct bt_component_class_filter { + struct bt_component_class_with_iterator_class parent; + struct { + bt_component_class_filter_get_supported_mip_versions_method get_supported_mip_versions; + bt_component_class_filter_initialize_method init; + bt_component_class_filter_finalize_method finalize; + bt_component_class_filter_query_method query; + bt_component_class_filter_input_port_connected_method input_port_connected; + bt_component_class_filter_output_port_connected_method output_port_connected; + } methods; }; struct bt_component_class_sink { @@ -89,19 +105,6 @@ struct bt_component_class_sink { } methods; }; -struct bt_component_class_filter { - struct bt_component_class parent; - struct { - bt_component_class_filter_get_supported_mip_versions_method get_supported_mip_versions; - bt_component_class_filter_initialize_method init; - bt_component_class_filter_finalize_method finalize; - bt_component_class_filter_query_method query; - bt_component_class_filter_input_port_connected_method input_port_connected; - bt_component_class_filter_output_port_connected_method output_port_connected; - } methods; - bt_message_iterator_class *msg_iter_cls; -}; - BT_HIDDEN void bt_component_class_add_destroy_listener(struct bt_component_class *class, bt_component_class_destroy_listener_func func, void *data); @@ -131,4 +134,12 @@ const char *bt_component_class_type_string(enum bt_component_class_type type) } } +static inline +bool bt_component_class_has_message_iterator_class( + struct bt_component_class *component_class) +{ + return component_class->type == BT_COMPONENT_CLASS_TYPE_SOURCE || + component_class->type == BT_COMPONENT_CLASS_TYPE_FILTER; +} + #endif /* BABELTRACE_GRAPH_COMPONENT_CLASS_INTERNAL_H */