lib: graph: add "self" and some "private" APIs
[babeltrace.git] / lib / trace-ir / event.c
index b997f209655724debcaec974bd75e9a847d443c5..b596adf1e29793a93f4762f5e460a9b2035a046c 100644 (file)
@@ -1,8 +1,4 @@
 /*
- * event.c
- *
- * Babeltrace trace IR - Event
- *
  * Copyright 2013, 2014 Jérémie Galarneau <jeremie.galarneau@efficios.com>
  *
  * Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
 
 #include <babeltrace/assert-pre-internal.h>
 #include <babeltrace/trace-ir/fields-internal.h>
-#include <babeltrace/trace-ir/field-types-internal.h>
+#include <babeltrace/trace-ir/field-classes-internal.h>
 #include <babeltrace/trace-ir/clock-class.h>
 #include <babeltrace/trace-ir/clock-value.h>
 #include <babeltrace/trace-ir/clock-value-internal.h>
 #include <babeltrace/trace-ir/clock-class-internal.h>
+#include <babeltrace/trace-ir/private-event.h>
 #include <babeltrace/trace-ir/event-internal.h>
 #include <babeltrace/trace-ir/event-class.h>
 #include <babeltrace/trace-ir/event-class-internal.h>
@@ -47,7 +44,7 @@
 #include <babeltrace/trace-ir/trace.h>
 #include <babeltrace/trace-ir/trace-internal.h>
 #include <babeltrace/trace-ir/packet-internal.h>
-#include <babeltrace/ref.h>
+#include <babeltrace/object.h>
 #include <babeltrace/trace-ir/attributes-internal.h>
 #include <babeltrace/compiler-internal.h>
 #include <babeltrace/assert-internal.h>
@@ -110,7 +107,7 @@ struct bt_field_wrapper *create_event_header_field(
 
        field_wrapper = bt_field_wrapper_create(
                &stream_class->event_header_field_pool,
-               bt_stream_class_borrow_event_header_field_type(stream_class));
+               bt_stream_class_borrow_event_header_field_class(stream_class));
        if (!field_wrapper) {
                goto error;
        }
@@ -132,7 +129,7 @@ struct bt_event *bt_event_new(struct bt_event_class *event_class)
 {
        struct bt_event *event = NULL;
        struct bt_stream_class *stream_class;
-       struct bt_field_type *ft;
+       struct bt_field_class *fc;
 
        BT_ASSERT(event_class);
        event = g_new0(struct bt_event, 1);
@@ -145,7 +142,7 @@ struct bt_event *bt_event_new(struct bt_event_class *event_class)
        stream_class = bt_event_class_borrow_stream_class(event_class);
        BT_ASSERT(stream_class);
 
-       if (bt_stream_class_borrow_event_header_field_type(stream_class)) {
+       if (bt_stream_class_borrow_event_header_field_class(stream_class)) {
                event->header_field = create_event_header_field(stream_class);
                if (!event->header_field) {
                        BT_LOGE_STR("Cannot create event header field.");
@@ -153,28 +150,28 @@ struct bt_event *bt_event_new(struct bt_event_class *event_class)
                }
        }
 
-       ft = bt_stream_class_borrow_event_common_context_field_type(
+       fc = bt_stream_class_borrow_event_common_context_field_class(
                stream_class);
-       if (ft) {
-               event->common_context_field = bt_field_create(ft);
+       if (fc) {
+               event->common_context_field = bt_field_create(fc);
                if (!event->common_context_field) {
                        /* bt_field_create() logs errors */
                        goto error;
                }
        }
 
-       ft = bt_event_class_borrow_specific_context_field_type(event_class);
-       if (ft) {
-               event->specific_context_field = bt_field_create(ft);
+       fc = bt_event_class_borrow_specific_context_field_class(event_class);
+       if (fc) {
+               event->specific_context_field = bt_field_create(fc);
                if (!event->specific_context_field) {
                        /* bt_field_create() logs errors */
                        goto error;
                }
        }
 
-       ft = bt_event_class_borrow_payload_field_type(event_class);
-       if (ft) {
-               event->payload_field = bt_field_create(ft);
+       fc = bt_event_class_borrow_payload_field_class(event_class);
+       if (fc) {
+               event->payload_field = bt_field_create(fc);
                if (!event->payload_field) {
                        /* bt_field_create() logs errors */
                        goto error;
@@ -220,24 +217,48 @@ struct bt_field *bt_event_borrow_header_field(struct bt_event *event)
        return event->header_field ? event->header_field->field : NULL;
 }
 
+struct bt_private_field *bt_private_event_borrow_header_field(
+               struct bt_private_event *event)
+{
+       return (void *) bt_event_borrow_header_field((void *) event);
+}
+
 struct bt_field *bt_event_borrow_common_context_field(struct bt_event *event)
 {
        BT_ASSERT_PRE_NON_NULL(event, "Event");
        return event->common_context_field;
 }
 
+struct bt_private_field *bt_private_event_borrow_common_context_field(
+               struct bt_private_event *event)
+{
+       return (void *) bt_event_borrow_common_context_field((void *) event);
+}
+
 struct bt_field *bt_event_borrow_specific_context_field(struct bt_event *event)
 {
        BT_ASSERT_PRE_NON_NULL(event, "Event");
        return event->specific_context_field;
 }
 
+struct bt_private_field *bt_private_event_borrow_specific_context_field(
+               struct bt_private_event *event)
+{
+       return (void *) bt_event_borrow_specific_context_field((void *) event);
+}
+
 struct bt_field *bt_event_borrow_payload_field(struct bt_event *event)
 {
        BT_ASSERT_PRE_NON_NULL(event, "Event");
        return event->payload_field;
 }
 
+struct bt_private_field *bt_private_event_borrow_payload_field(
+               struct bt_private_event *event)
+{
+       return (void *) bt_event_borrow_payload_field((void *) event);
+}
+
 static
 void release_event_header_field(struct bt_field_wrapper *field_wrapper,
                struct bt_event *event)
@@ -280,20 +301,21 @@ void bt_event_destroy(struct bt_event *event)
        }
 
        BT_LOGD_STR("Putting event's class.");
-       bt_put(event->class);
+       bt_object_put_ref(event->class);
 
        if (event->default_cv) {
                bt_clock_value_recycle(event->default_cv);
        }
 
        BT_LOGD_STR("Putting event's packet.");
-       bt_put(event->packet);
+       bt_object_put_ref(event->packet);
        g_free(event);
 }
 
-int bt_event_set_default_clock_value(struct bt_event *event,
-               uint64_t value_cycles)
+int bt_private_event_set_default_clock_value(
+               struct bt_private_event *priv_event, uint64_t value_cycles)
 {
+       struct bt_event *event = (void *) priv_event;
        struct bt_stream_class *sc;
 
        BT_ASSERT_PRE_NON_NULL(event, "Event");
@@ -325,18 +347,27 @@ struct bt_packet *bt_event_borrow_packet(struct bt_event *event)
        return event->packet;
 }
 
-int bt_event_move_header(struct bt_event *event,
-               struct bt_event_header_field *header_field)
+struct bt_private_packet *bt_private_event_borrow_packet(
+               struct bt_private_event *event)
+{
+       return (void *) bt_event_borrow_packet((void *) event);
+}
+
+int bt_private_event_move_header_field(
+               struct bt_private_event *priv_event,
+               struct bt_private_event_header_field *priv_header_field)
 {
        struct bt_stream_class *stream_class;
-       struct bt_field_wrapper *field_wrapper = (void *) header_field;
+       struct bt_event *event = (void *) priv_event;
+       struct bt_event_class *event_class = (void *) event_class;
+       struct bt_field_wrapper *field_wrapper = (void *) priv_header_field;
 
        BT_ASSERT_PRE_NON_NULL(event, "Event");
        BT_ASSERT_PRE_NON_NULL(field_wrapper, "Header field");
        BT_ASSERT_PRE_EVENT_HOT(event);
        stream_class = bt_event_class_borrow_stream_class_inline(event->class);
-       BT_ASSERT_PRE(stream_class->event_header_ft,
-               "Stream class has no event header field type: %!+S",
+       BT_ASSERT_PRE(stream_class->event_header_fc,
+               "Stream class has no event header field classe: %!+S",
                stream_class);
 
        /* Recycle current header field: always exists */
This page took 0.027331 seconds and 4 git commands to generate.