X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fevent-internal.h;h=5201ee53b7c54e353cd24789d97a4dc93054c125;hb=29664b2a3a15c7233d916887d2f58fc42e18521e;hp=ac4cd6de83041946b3d720a04ff93238ddda3fe7;hpb=de876b7fd76bbc7ff498b88f0cf11bd828e5743a;p=babeltrace.git diff --git a/include/babeltrace/ctf-ir/event-internal.h b/include/babeltrace/ctf-ir/event-internal.h index ac4cd6de..5201ee53 100644 --- a/include/babeltrace/ctf-ir/event-internal.h +++ b/include/babeltrace/ctf-ir/event-internal.h @@ -31,14 +31,22 @@ #include #include #include +#include #include +#include +#include #include +#define BT_CTF_EVENT_CLASS_ATTR_ID_INDEX 0 +#define BT_CTF_EVENT_CLASS_ATTR_NAME_INDEX 1 + struct bt_ctf_event_class { struct bt_ctf_ref ref_count; - GQuark name; - int id_set; - uint32_t id; + struct bt_object *attributes; + /* + * Weak reference; an event class does not have ownership of a + * stream class. + */ struct bt_ctf_stream_class *stream_class; /* Structure type containing the event's context */ struct bt_ctf_field_type *context; @@ -49,8 +57,10 @@ struct bt_ctf_event_class { struct bt_ctf_event { struct bt_ctf_ref ref_count; - uint64_t timestamp; struct bt_ctf_event_class *event_class; + /* Weak reference; an event does not have ownership of a stream */ + struct bt_ctf_stream *stream; + struct bt_ctf_field *event_header; struct bt_ctf_field *context_payload; struct bt_ctf_field *fields_payload; }; @@ -66,6 +76,15 @@ BT_HIDDEN int bt_ctf_event_class_serialize(struct bt_ctf_event_class *event_class, struct metadata_context *context); +BT_HIDDEN +void bt_ctf_event_class_set_native_byte_order( + struct bt_ctf_event_class *event_class, + int byte_order); + +BT_HIDDEN +int bt_ctf_event_class_set_stream_id(struct bt_ctf_event_class *event_class, + uint32_t stream_id); + BT_HIDDEN int bt_ctf_event_validate(struct bt_ctf_event *event); @@ -74,9 +93,19 @@ int bt_ctf_event_serialize(struct bt_ctf_event *event, struct ctf_stream_pos *pos); BT_HIDDEN -int bt_ctf_event_set_timestamp(struct bt_ctf_event *event, uint64_t timestamp); +int bt_ctf_event_set_stream(struct bt_ctf_event *event, + struct bt_ctf_stream *stream); +/* + * Attempt to populate the "id" and "timestamp" fields of the event header if + * they are present, unset and their types are integers. + * + * Not finding these fields or encountering unexpected types is not an error + * since the user may have defined a different event header layout. In this + * case, it is expected that the fields be manually populated before appending + * an event to a stream. + */ BT_HIDDEN -uint64_t bt_ctf_event_get_timestamp(struct bt_ctf_event *event); +int bt_ctf_event_populate_event_header(struct bt_ctf_event *event); #endif /* BABELTRACE_CTF_IR_EVENT_INTERNAL_H */