X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fevent-internal.h;h=171e7c78474ba91d3b1e5a8b836ad91de18295b7;hb=b8248cc00f72ac2448c697c76033c8862d8db673;hp=ac4cd6de83041946b3d720a04ff93238ddda3fe7;hpb=2f100782231d86cdaaadf7a8568c5b28583800f4;p=babeltrace.git diff --git a/include/babeltrace/ctf-ir/event-internal.h b/include/babeltrace/ctf-ir/event-internal.h index ac4cd6de..171e7c78 100644 --- a/include/babeltrace/ctf-ir/event-internal.h +++ b/include/babeltrace/ctf-ir/event-internal.h @@ -31,14 +31,17 @@ #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; + /* 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 +52,8 @@ 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; + struct bt_ctf_field *event_header; struct bt_ctf_field *context_payload; struct bt_ctf_field *fields_payload; }; @@ -66,6 +69,11 @@ 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_validate(struct bt_ctf_event *event); @@ -73,10 +81,16 @@ BT_HIDDEN int bt_ctf_event_serialize(struct bt_ctf_event *event, struct ctf_stream_pos *pos); +/* + * 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 -int bt_ctf_event_set_timestamp(struct bt_ctf_event *event, uint64_t timestamp); - -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 */