X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fcomponent-class-sink.h;h=b57abc94cf713092634490bb8200dd0160b22af0;hb=b19ff26f04df428047676dd736bd7cc9473906fe;hp=fcfd0c502c7c0f013561e28e19b8703cddae59e0;hpb=706a18f9d5d66f764b864085768dde24d342d308;p=babeltrace.git diff --git a/include/babeltrace/graph/component-class-sink.h b/include/babeltrace/graph/component-class-sink.h index fcfd0c50..b57abc94 100644 --- a/include/babeltrace/graph/component-class-sink.h +++ b/include/babeltrace/graph/component-class-sink.h @@ -2,8 +2,7 @@ #define BABELTRACE_GRAPH_COMPONENT_CLASS_SINK_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,20 +24,96 @@ * SOFTWARE. */ -#include +#include + +/* For enum bt_self_component_status */ +#include + +/* For enum bt_query_status */ +#include + +/* + * For bt_component_class, bt_component_class_sink, bt_port_output, + * bt_query_executor, bt_self_component_class_sink, + * bt_self_component_sink, bt_self_component_port_input, bt_value + */ +#include #ifdef __cplusplus extern "C" { #endif -struct bt_component_class; +typedef enum bt_self_component_status +(*bt_component_class_sink_init_method)( + bt_self_component_sink *self_component, + const bt_value *params, void *init_method_data); + +typedef void (*bt_component_class_sink_finalize_method)( + bt_self_component_sink *self_component); + +typedef enum bt_query_status +(*bt_component_class_sink_query_method)( + bt_self_component_class_sink *comp_class, + const bt_query_executor *query_executor, + const char *object, const bt_value *params, + const bt_value **result); + +typedef enum bt_self_component_status +(*bt_component_class_sink_accept_input_port_connection_method)( + bt_self_component_sink *self_component, + bt_self_component_port_input *self_port, + const bt_port_output *other_port); + +typedef enum bt_self_component_status +(*bt_component_class_sink_input_port_connected_method)( + bt_self_component_sink *self_component, + bt_self_component_port_input *self_port, + const bt_port_output *other_port); -typedef enum bt_component_status (*bt_component_class_sink_consume_method)( - struct bt_private_component *private_component); +typedef void +(*bt_component_class_sink_input_port_disconnected_method)( + bt_self_component_sink *self_component, + bt_self_component_port_input *self_port); + +typedef enum bt_self_component_status +(*bt_component_class_sink_consume_method)( + bt_self_component_sink *self_component); + +static inline +bt_component_class *bt_component_class_sink_as_component_class( + bt_component_class_sink *comp_cls_sink) +{ + return (void *) comp_cls_sink; +} extern -struct bt_component_class *bt_component_class_sink_create(const char *name, - bt_component_class_sink_consume_method consume_method); +bt_component_class_sink *bt_component_class_sink_create( + const char *name, + bt_component_class_sink_consume_method method); + +extern int bt_component_class_sink_set_init_method( + bt_component_class_sink *comp_class, + bt_component_class_sink_init_method method); + +extern int bt_component_class_sink_set_finalize_method( + bt_component_class_sink *comp_class, + bt_component_class_sink_finalize_method method); + +extern int bt_component_class_sink_set_accept_input_port_connection_method( + bt_component_class_sink *comp_class, + bt_component_class_sink_accept_input_port_connection_method method); + +extern int bt_component_class_sink_set_input_port_connected_method( + bt_component_class_sink *comp_class, + bt_component_class_sink_input_port_connected_method method); + +extern int bt_component_class_sink_set_input_port_disconnected_method( + bt_component_class_sink *comp_class, + bt_component_class_sink_input_port_disconnected_method method); + +extern int bt_component_class_sink_set_query_method( + bt_component_class_sink *comp_class, + bt_component_class_sink_query_method method); #ifdef __cplusplus }