const bt_component *bt_component_source_as_component_const(
const bt_component_source *component);
+extern const bt_component_class_source *
+bt_component_source_borrow_class_const(
+ const bt_component_source *component);
+
extern uint64_t bt_component_source_get_output_port_count(
const bt_component_source *component);
const bt_component *bt_component_filter_as_component_const(
const bt_component_filter *component);
+extern const bt_component_class_filter *
+bt_component_filter_borrow_class_const(
+ const bt_component_filter *component);
+
extern uint64_t bt_component_filter_get_input_port_count(
const bt_component_filter *component);
const bt_component *bt_component_sink_as_component_const(
const bt_component_sink *component);
+extern const bt_component_class_sink *
+bt_component_sink_borrow_class_const(
+ const bt_component_sink *component);
+
extern uint64_t bt_component_sink_get_input_port_count(
const bt_component_sink *component);
/*
* For bt_component, bt_component_filter, bt_port_input, bt_port_output,
- * __BT_UPCAST_CONST
+ * __BT_UPCAST_CONST, bt_component_class_filter
*/
#include <babeltrace/types.h>
return __BT_UPCAST_CONST(bt_component, component);
}
+extern const bt_component_class_filter *
+bt_component_filter_borrow_class_const(
+ const bt_component_filter *component);
+
extern uint64_t bt_component_filter_get_input_port_count(
const bt_component_filter *component);
/*
* For bt_component, bt_component_filter, bt_port_input,
- * __BT_UPCAST_CONST
+ * __BT_UPCAST_CONST, bt_component_class_sink
*/
#include <babeltrace/types.h>
return __BT_UPCAST_CONST(bt_component, component);
}
+extern const bt_component_class_sink *
+bt_component_sink_borrow_class_const(
+ const bt_component_sink *component);
+
extern uint64_t bt_component_sink_get_input_port_count(
const bt_component_sink *component);
/*
* For bt_component, bt_component_filter, bt_port_output,
- * __BT_UPCAST_CONST
+ * __BT_UPCAST_CONST, bt_component_class_source
*/
#include <babeltrace/types.h>
return __BT_UPCAST_CONST(bt_component, component);
}
+extern const bt_component_class_source *
+bt_component_source_borrow_class_const(
+ const bt_component_source *component);
+
extern uint64_t bt_component_source_get_output_port_count(
const bt_component_source *component);
return (void *) filter;
}
+const bt_component_class_filter *
+bt_component_filter_borrow_class_const(
+ const bt_component_filter *component)
+{
+ struct bt_component_class *cls;
+
+ BT_ASSERT_PRE_NON_NULL(component, "Component");
+
+ cls = component->parent.class;
+
+ BT_ASSERT(cls);
+ BT_ASSERT(cls->type == BT_COMPONENT_CLASS_TYPE_FILTER);
+
+ return (bt_component_class_filter *) cls;
+}
+
uint64_t bt_component_filter_get_output_port_count(
const struct bt_component_filter *comp)
{
return (void *) sink;
}
+const bt_component_class_sink *
+bt_component_sink_borrow_class_const(
+ const bt_component_sink *component)
+{
+ struct bt_component_class *cls;
+
+ BT_ASSERT_PRE_NON_NULL(component, "Component");
+
+ cls = component->parent.class;
+
+ BT_ASSERT(cls);
+ BT_ASSERT(cls->type == BT_COMPONENT_CLASS_TYPE_SINK);
+
+ return (bt_component_class_sink *) cls;
+}
+
uint64_t bt_component_sink_get_input_port_count(
const struct bt_component_sink *component)
{
return (void *) source;
}
+const bt_component_class_source *
+bt_component_source_borrow_class_const(
+ const bt_component_source *component)
+{
+ struct bt_component_class *cls;
+
+ BT_ASSERT_PRE_NON_NULL(component, "Component");
+
+ cls = component->parent.class;
+
+ BT_ASSERT(cls);
+ BT_ASSERT(cls->type == BT_COMPONENT_CLASS_TYPE_SOURCE);
+
+ return (bt_component_class_source *) cls;
+}
+
uint64_t bt_component_source_get_output_port_count(
const struct bt_component_source *comp)
{