#include "common/assert.h"
#include "lib/assert-pre.h"
+#include "lib/assert-post.h"
#include "compat/compiler.h"
#include <babeltrace2/value.h>
-#include <babeltrace2/graph/self-component-sink.h>
-#include <babeltrace2/graph/component-sink-const.h>
+#include <babeltrace2/graph/self-component.h>
+#include <babeltrace2/graph/component.h>
#include <babeltrace2/graph/graph.h>
#include "component-sink.h"
#include "component.h"
+#include "graph.h"
#include "lib/func-status.h"
BT_HIDDEN
{
struct bt_component_sink *sink = NULL;
+ BT_ASSERT_PRE_NO_ERROR();
+
sink = g_new0(struct bt_component_sink, 1);
if (!sink) {
- BT_LOGE_STR("Failed to allocate one sink component.");
+ BT_LIB_LOGE_APPEND_CAUSE(
+ "Failed to allocate one sink component.");
goto end;
}
{
struct bt_component_class *cls;
- BT_ASSERT_PRE_NON_NULL(component, "Component");
+ BT_ASSERT_PRE_DEV_NON_NULL(component, "Component");
cls = component->parent.class;
- BT_ASSERT(cls);
- BT_ASSERT(cls->type == BT_COMPONENT_CLASS_TYPE_SINK);
+ BT_ASSERT_DBG(cls);
+ BT_ASSERT_DBG(cls->type == BT_COMPONENT_CLASS_TYPE_SINK);
return (bt_component_class_sink *) cls;
}
struct bt_port *port = NULL;
struct bt_component *comp = (void *) self_comp;
+ BT_ASSERT_PRE_NO_ERROR();
+
/* bt_component_add_input_port() logs details/errors */
status = bt_component_add_input_port(comp, name, user_data, &port);
if (status != BT_FUNC_STATUS_OK) {
if (self_port) {
/* Move reference to user */
*self_port = (void *) port;
- port = NULL;
}
end:
return status;
}
+bt_bool bt_self_component_sink_is_interrupted(
+ const struct bt_self_component_sink *self_comp)
+{
+ struct bt_component *comp = (void *) self_comp;
+
+ BT_ASSERT_PRE_NON_NULL(comp, "Component");
+ return (bt_bool) bt_graph_is_interrupted(
+ bt_component_borrow_graph(comp));
+}
+
void bt_component_sink_get_ref(
const struct bt_component_sink *component_sink)
{