/*
* sink.c
*
- * Babeltrace Source Component
+ * Babeltrace Sink Component
*
* Copyright 2015 Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
static
void bt_component_sink_destroy(struct bt_component *component)
{
- struct bt_component_sink *sink;
-
- if (!component) {
- return;
- }
+ return;
+}
- sink = container_of(component, struct bt_component_sink, parent);
- g_free(sink);
+BT_HIDDEN
+enum bt_component_status bt_component_sink_validate(
+ struct bt_component *component)
+{
+ return BT_COMPONENT_STATUS_OK;
}
-struct bt_component *bt_component_sink_create(const char *name,
- void *private_data, bt_component_destroy_cb destroy_func,
- bt_component_sink_handle_notification_cb notification_cb)
+BT_HIDDEN
+struct bt_component *bt_component_sink_create(
+ struct bt_component_class *class, struct bt_value *params)
{
struct bt_component_sink *sink = NULL;
enum bt_component_status ret;
- if (!notification_cb) {
- goto end;
- }
-
sink = g_new0(struct bt_component_sink, 1);
if (!sink) {
goto end;
}
- ret = bt_component_init(&sink->parent, name, private_data,
- destroy_func, BT_COMPONENT_TYPE_SINK,
- bt_component_sink_destroy);
+ ret = bt_component_init(&sink->parent, bt_component_sink_destroy);
if (ret != BT_COMPONENT_STATUS_OK) {
- g_free(sink);
- sink = NULL;
+ BT_PUT(sink);
goto end;
}
-
- sink->handle_notification = notification_cb;
end:
return sink ? &sink->parent : NULL;
}