#define BABELTRACE_GRAPH_COMPONENT_SINK_INTERNAL_H
/*
- * BabelTrace - Sink Component internal
- *
* Copyright 2015 Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
* Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
#include <babeltrace/graph/component-internal.h>
#include <babeltrace/graph/component-class-internal.h>
-struct bt_value;
-
-//typedef uint32_t notification_mask_t;
-
struct bt_component_sink {
struct bt_component parent;
};
-/**
- * Allocate a sink component.
- *
- * @param class Component class
- * @param params A dictionary of component parameters
- * @returns A sink component instance
- */
BT_HIDDEN
struct bt_component *bt_component_sink_create(
struct bt_component_class *class);
BT_HIDDEN
void bt_component_sink_destroy(struct bt_component *component);
-static inline
-enum bt_component_status bt_component_sink_consume(
- struct bt_component *component)
-{
- enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
- struct bt_component_class_sink *sink_class = NULL;
-
- BT_ASSERT(component);
- BT_ASSERT(bt_component_get_class_type(component) ==
- BT_COMPONENT_CLASS_TYPE_SINK);
- sink_class = container_of(component->class,
- struct bt_component_class_sink, parent);
- BT_ASSERT(sink_class->methods.consume);
- BT_LOGD("Calling user's consume method: "
- "comp-addr=%p, comp-name=\"%s\"",
- component, bt_component_get_name(component));
- ret = sink_class->methods.consume(
- bt_private_component_from_component(component));
- BT_LOGD("User method returned: status=%s",
- bt_component_status_string(ret));
- if (ret < 0) {
- BT_LOGW_STR("Consume method failed.");
- }
-
- return ret;
-}
-
#endif /* BABELTRACE_GRAPH_COMPONENT_SINK_INTERNAL_H */