X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fcomponent-class.h;h=5a8332e985facc89472b6eb303b4fee5158b6fe7;hb=e2f7325d1e58710ee928373592adcee466f93d06;hp=f7d243649f02a690f9f544048f88c792c0ae1d37;hpb=d4393e0875e7b08f6ee97d617cc5f2c9286742a4;p=babeltrace.git diff --git a/include/babeltrace/graph/component-class.h b/include/babeltrace/graph/component-class.h index f7d24364..5a8332e9 100644 --- a/include/babeltrace/graph/component-class.h +++ b/include/babeltrace/graph/component-class.h @@ -2,8 +2,7 @@ #define BABELTRACE_GRAPH_COMPONENT_CLASS_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,121 +24,24 @@ * SOFTWARE. */ -#include - -/* For enum bt_component_status */ -#include - -/* For enum bt_notification_iterator_status */ -#include - -/* For enum bt_query_status */ -#include - -/* For bt_bool */ -#include - -/* For bt_notification_array */ -#include +/* For enum bt_query_executor_status */ +#include #ifdef __cplusplus extern "C" { #endif struct bt_component_class; -struct bt_component; -struct bt_private_component; -struct bt_private_port; -struct bt_port; -struct bt_value; -struct bt_private_connection_private_notification_iterator; -struct bt_query_executor; -/** - * Component class type. - */ -enum bt_component_class_type { - BT_COMPONENT_CLASS_TYPE_UNKNOWN = -1, - - /** A source component is a notification generator. */ - BT_COMPONENT_CLASS_TYPE_SOURCE = 0, - - /** A sink component handles incoming notifications. */ - BT_COMPONENT_CLASS_TYPE_SINK = 1, - - /** A filter component implements both Source and Sink interfaces. */ - BT_COMPONENT_CLASS_TYPE_FILTER = 2, +enum bt_query_status { + BT_QUERY_STATUS_OK = BT_QUERY_EXECUTOR_STATUS_OK, + BT_QUERY_STATUS_AGAIN = BT_QUERY_EXECUTOR_STATUS_AGAIN, + BT_QUERY_STATUS_ERROR = BT_QUERY_EXECUTOR_STATUS_ERROR, + BT_QUERY_STATUS_NOMEM = BT_QUERY_EXECUTOR_STATUS_NOMEM, + BT_QUERY_STATUS_INVALID_OBJECT = BT_QUERY_EXECUTOR_STATUS_INVALID_OBJECT, + BT_QUERY_STATUS_INVALID_PARAMS = BT_QUERY_EXECUTOR_STATUS_INVALID_PARAMS, }; -struct bt_component_class_query_method_return { - struct bt_value *result; - enum bt_query_status status; -}; - -typedef enum bt_component_status (*bt_component_class_init_method)( - struct bt_private_component *private_component, - struct bt_value *params, void *init_method_data); - -typedef void (*bt_component_class_finalize_method)( - struct bt_private_component *private_component); - -typedef enum bt_notification_iterator_status - (*bt_component_class_notification_iterator_init_method)( - struct bt_private_connection_private_notification_iterator *notification_iterator, - struct bt_private_port *private_port); - -typedef void (*bt_component_class_notification_iterator_finalize_method)( - struct bt_private_connection_private_notification_iterator *notification_iterator); - -typedef enum bt_notification_iterator_status -(*bt_component_class_notification_iterator_next_method)( - struct bt_private_connection_private_notification_iterator *notification_iterator, - bt_notification_array notifs, uint64_t capacity, - uint64_t *count); - -typedef struct bt_component_class_query_method_return (*bt_component_class_query_method)( - struct bt_component_class *component_class, - struct bt_query_executor *query_executor, - const char *object, struct bt_value *params); - -typedef enum bt_component_status (*bt_component_class_accept_port_connection_method)( - struct bt_private_component *private_component, - struct bt_private_port *self_private_port, - struct bt_port *other_port); - -typedef void (*bt_component_class_port_connected_method)( - struct bt_private_component *private_component, - struct bt_private_port *self_private_port, - struct bt_port *other_port); - -typedef void (*bt_component_class_port_disconnected_method)( - struct bt_private_component *private_component, - struct bt_private_port *private_port); - -extern int bt_component_class_set_init_method( - struct bt_component_class *component_class, - bt_component_class_init_method method); - -extern int bt_component_class_set_finalize_method( - struct bt_component_class *component_class, - bt_component_class_finalize_method method); - -extern int bt_component_class_set_accept_port_connection_method( - struct bt_component_class *component_class, - bt_component_class_accept_port_connection_method method); - -extern int bt_component_class_set_port_connected_method( - struct bt_component_class *component_class, - bt_component_class_port_connected_method method); - -extern int bt_component_class_set_port_disconnected_method( - struct bt_component_class *component_class, - bt_component_class_port_disconnected_method method); - -extern int bt_component_class_set_query_method( - struct bt_component_class *component_class, - bt_component_class_query_method method); - extern int bt_component_class_set_description( struct bt_component_class *component_class, const char *description); @@ -148,63 +50,6 @@ extern int bt_component_class_set_help( struct bt_component_class *component_class, const char *help); -extern int bt_component_class_freeze( - struct bt_component_class *component_class); - -/** - * Get a component class' name. - * - * @param component_class Component class of which to get the name - * @returns Name of the component class - */ -extern const char *bt_component_class_get_name( - struct bt_component_class *component_class); - -/** - * Get a component class' description. - * - * Component classes may provide an optional description. It may, however, - * opt not to. - * - * @param component_class Component class of which to get the description - * @returns Description of the component class, or NULL. - */ -extern const char *bt_component_class_get_description( - struct bt_component_class *component_class); - -extern const char *bt_component_class_get_help( - struct bt_component_class *component_class); - -/** - * Get a component class' type. - * - * @param component_class Component class of which to get the type - * @returns One of #bt_component_type - */ -extern enum bt_component_class_type bt_component_class_get_type( - struct bt_component_class *component_class); - -static inline -bt_bool bt_component_class_is_source(struct bt_component_class *component_class) -{ - return bt_component_class_get_type(component_class) == - BT_COMPONENT_CLASS_TYPE_SOURCE; -} - -static inline -bt_bool bt_component_class_is_filter(struct bt_component_class *component_class) -{ - return bt_component_class_get_type(component_class) == - BT_COMPONENT_CLASS_TYPE_FILTER; -} - -static inline -bt_bool bt_component_class_is_sink(struct bt_component_class *component_class) -{ - return bt_component_class_get_type(component_class) == - BT_COMPONENT_CLASS_TYPE_SINK; -} - #ifdef __cplusplus } #endif