X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fcomponent-class-filter.h;h=2e8f472e6632c84c34763f9b851a64f0847a8a0e;hb=005f1204d7620018bb2c1406b6194940f0ee119f;hp=b27eb37633fb4e652a20fb22a545928f4ba78e58;hpb=9d408fcae74602e3591f66623ceb85f482d948ed;p=babeltrace.git diff --git a/include/babeltrace/graph/component-class-filter.h b/include/babeltrace/graph/component-class-filter.h index b27eb376..2e8f472e 100644 --- a/include/babeltrace/graph/component-class-filter.h +++ b/include/babeltrace/graph/component-class-filter.h @@ -2,8 +2,7 @@ #define BABELTRACE_GRAPH_COMPONENT_CLASS_FILTER_H /* - * Babeltrace - Component Class Interface. - * + * Copyright 2017-2018 Philippe Proulx * Copyright 2016 Jérémie Galarneau * * Permission is hereby granted, free of charge, to any person obtaining a copy @@ -25,28 +24,182 @@ * SOFTWARE. */ -/* For component class method type definitions */ +#include + +/* For bt_self_component_status */ +#include + +/* For bt_self_message_iterator_status */ +#include + +/* For bt_query_status */ #include +/* For bt_component_class_status */ +#include + +/* + * For bt_component_class, bt_component_class_filter, bt_port_input, + * bt_port_output, bt_query_executor, bt_self_component_class_filter, + * bt_self_component_filter, bt_self_component_port_input, + * bt_self_component_port_output, bt_value, bt_message_array_const, + * bt_bool, bt_self_message_iterator, __BT_UPCAST + */ +#include + #ifdef __cplusplus extern "C" { #endif -struct bt_component_class; +typedef bt_self_component_status +(*bt_component_class_filter_init_method)( + bt_self_component_filter *self_component, + const bt_value *params, void *init_method_data); -extern -struct bt_component_class *bt_component_class_filter_create(const char *name, - bt_component_class_notification_iterator_next_method method); +typedef void (*bt_component_class_filter_finalize_method)( + bt_self_component_filter *self_component); -extern -int bt_component_class_filter_set_notification_iterator_init_method( - struct bt_component_class *component_class, - bt_component_class_notification_iterator_init_method method); +typedef bt_self_message_iterator_status +(*bt_component_class_filter_message_iterator_init_method)( + bt_self_message_iterator *message_iterator, + bt_self_component_filter *self_component, + bt_self_component_port_output *port); + +typedef void +(*bt_component_class_filter_message_iterator_finalize_method)( + bt_self_message_iterator *message_iterator); + +typedef bt_self_message_iterator_status +(*bt_component_class_filter_message_iterator_next_method)( + bt_self_message_iterator *message_iterator, + bt_message_array_const msgs, uint64_t capacity, + uint64_t *count); + +typedef bt_self_message_iterator_status +(*bt_component_class_filter_message_iterator_seek_ns_from_origin_method)( + bt_self_message_iterator *message_iterator, + int64_t ns_from_origin); + +typedef bt_self_message_iterator_status +(*bt_component_class_filter_message_iterator_seek_beginning_method)( + bt_self_message_iterator *message_iterator); + +typedef bt_bool +(*bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method)( + bt_self_message_iterator *message_iterator, + int64_t ns_from_origin); + +typedef bt_bool +(*bt_component_class_filter_message_iterator_can_seek_beginning_method)( + bt_self_message_iterator *message_iterator); + +typedef bt_query_status +(*bt_component_class_filter_query_method)( + bt_self_component_class_filter *comp_class, + const bt_query_executor *query_executor, + const char *object, const bt_value *params, + const bt_value **result); + +typedef bt_self_component_status +(*bt_component_class_filter_accept_input_port_connection_method)( + bt_self_component_filter *self_component, + bt_self_component_port_input *self_port, + const bt_port_output *other_port); + +typedef bt_self_component_status +(*bt_component_class_filter_accept_output_port_connection_method)( + bt_self_component_filter *self_component, + bt_self_component_port_output *self_port, + const bt_port_input *other_port); + +typedef bt_self_component_status +(*bt_component_class_filter_input_port_connected_method)( + bt_self_component_filter *self_component, + bt_self_component_port_input *self_port, + const bt_port_output *other_port); + +typedef bt_self_component_status +(*bt_component_class_filter_output_port_connected_method)( + bt_self_component_filter *self_component, + bt_self_component_port_output *self_port, + const bt_port_input *other_port); + +static inline +bt_component_class *bt_component_class_filter_as_component_class( + bt_component_class_filter *comp_cls_filter) +{ + return __BT_UPCAST(bt_component_class, comp_cls_filter); +} extern -int bt_component_class_filter_set_notification_iterator_finalize_method( - struct bt_component_class *component_class, - bt_component_class_notification_iterator_finalize_method method); +bt_component_class_filter *bt_component_class_filter_create( + const char *name, + bt_component_class_filter_message_iterator_next_method method); + +extern bt_component_class_status +bt_component_class_filter_set_init_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_init_method method); + +extern bt_component_class_status +bt_component_class_filter_set_finalize_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_finalize_method method); + +extern bt_component_class_status +bt_component_class_filter_set_accept_input_port_connection_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_accept_input_port_connection_method method); + +extern bt_component_class_status +bt_component_class_filter_set_accept_output_port_connection_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_accept_output_port_connection_method method); + +extern bt_component_class_status +bt_component_class_filter_set_input_port_connected_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_input_port_connected_method method); + +extern bt_component_class_status +bt_component_class_filter_set_output_port_connected_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_output_port_connected_method method); + +extern bt_component_class_status +bt_component_class_filter_set_query_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_query_method method); + +extern bt_component_class_status +bt_component_class_filter_set_message_iterator_init_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_message_iterator_init_method method); + +extern bt_component_class_status +bt_component_class_filter_set_message_iterator_finalize_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_message_iterator_finalize_method method); + +extern bt_component_class_status +bt_component_class_filter_set_message_iterator_seek_ns_from_origin_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_message_iterator_seek_ns_from_origin_method method); + +extern bt_component_class_status +bt_component_class_filter_set_message_iterator_seek_beginning_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_message_iterator_seek_beginning_method method); + +extern bt_bool +bt_component_class_filter_set_message_iterator_can_seek_ns_from_origin_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method method); + +extern bt_bool +bt_component_class_filter_set_message_iterator_can_seek_beginning_method( + bt_component_class_filter *comp_class, + bt_component_class_filter_message_iterator_can_seek_beginning_method method); #ifdef __cplusplus }