#include <babeltrace/lib-logging-internal.h>
#include <babeltrace/assert-pre-internal.h>
+#include <babeltrace/ctf-ir/clock-value-internal.h>
#include <babeltrace/ctf-ir/fields-internal.h>
#include <babeltrace/ctf-ir/field-types-internal.h>
#include <babeltrace/ctf-ir/event-class.h>
#include <babeltrace/ctf-ir/event-class-internal.h>
+#include <babeltrace/ctf-ir/event-internal.h>
#include <babeltrace/ctf-ir/stream-class.h>
#include <babeltrace/ctf-ir/stream-class-internal.h>
#include <babeltrace/ctf-ir/trace-internal.h>
BT_LOGD("Initializing common event class object: name=\"%s\"",
name);
- bt_object_init(event_class, release_func);
+ bt_object_init_shared_with_parent(&event_class->base, release_func);
event_class->payload_field_type = ft_struct_create_func();
if (!event_class->payload_field_type) {
BT_LOGE_STR("Cannot create event class's initial payload field type object.");
static
void bt_event_class_destroy(struct bt_object *obj)
{
+ struct bt_event_class *event_class = (void *) obj;
+
BT_LOGD("Destroying event class: addr=%p", obj);
bt_event_class_common_finalize(obj);
+ bt_object_pool_finalize(&event_class->event_pool);
g_free(obj);
}
+static
+void free_event(struct bt_event *event,
+ struct bt_event_class *event_class)
+{
+ bt_event_destroy(event);
+}
+
struct bt_event_class *bt_event_class_create(const char *name)
{
int ret;
goto error;
}
+ ret = bt_object_pool_initialize(&event_class->event_pool,
+ (bt_object_pool_new_object_func) bt_event_new,
+ (bt_object_pool_destroy_object_func) free_event,
+ event_class);
+ if (ret) {
+ BT_LOGE("Failed to initialize event pool: ret=%d",
+ ret);
+ goto error;
+ }
+
BT_LOGD("Created event class object: addr=%p, name=\"%s\"",
event_class, bt_event_class_get_name(event_class));
goto end;
emf_uri);
}
-struct bt_stream_class *bt_event_class_get_stream_class(
+struct bt_stream_class *bt_event_class_borrow_stream_class(
struct bt_event_class *event_class)
{
BT_ASSERT_PRE_NON_NULL(event_class, "Event class");
- return bt_get(bt_event_class_borrow_stream_class(event_class));
+ return BT_FROM_COMMON(
+ bt_event_class_common_borrow_stream_class(BT_TO_COMMON(
+ event_class)));
}
-struct bt_field_type *bt_event_class_get_payload_field_type(
+struct bt_field_type *bt_event_class_borrow_payload_field_type(
struct bt_event_class *event_class)
{
- return BT_FROM_COMMON(bt_event_class_common_get_payload_field_type(
+ return BT_FROM_COMMON(bt_event_class_common_borrow_payload_field_type(
BT_TO_COMMON(event_class)));
}
BT_TO_COMMON(event_class), (void *) field_type);
}
-struct bt_field_type *bt_event_class_get_context_field_type(
+struct bt_field_type *bt_event_class_borrow_context_field_type(
struct bt_event_class *event_class)
{
- return BT_FROM_COMMON(bt_event_class_common_get_context_field_type(
+ return BT_FROM_COMMON(bt_event_class_common_borrow_context_field_type(
BT_TO_COMMON(event_class)));
}