X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fevent-internal.h;h=c3243f52791adc034aafbce7f6f969954d232a8a;hb=a66b31faf71b526617ede668677bdabade00cd11;hp=cc10f224015034a9bb9484b91f3b82dba6814608;hpb=1c822dfb58d831ad298b704ecaea181c16d16f3f;p=babeltrace.git diff --git a/include/babeltrace/ctf-ir/event-internal.h b/include/babeltrace/ctf-ir/event-internal.h index cc10f224..c3243f52 100644 --- a/include/babeltrace/ctf-ir/event-internal.h +++ b/include/babeltrace/ctf-ir/event-internal.h @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include @@ -75,4 +74,159 @@ int bt_ctf_event_populate_event_header(struct bt_ctf_event *event); BT_HIDDEN void bt_ctf_event_freeze(struct bt_ctf_event *event); +/* + * bt_ctf_event_get_class: get an event's class. + * + * @param event Event. + * + * Returns the event's class, NULL on error. + */ +BT_HIDDEN +struct bt_ctf_event_class *bt_ctf_event_get_class(struct bt_ctf_event *event); + +/* + * bt_ctf_event_get_stream: get an event's associated stream. + * + * @param event Event. + * + * Returns the event's associated stream, NULL on error. + */ +BT_HIDDEN +struct bt_ctf_stream *bt_ctf_event_get_stream(struct bt_ctf_event *event); + +/* + * bt_ctf_event_get_clock: get an event's associated clock. + * + * @param event Event. + * + * Returns the event's clock, NULL on error. + */ +BT_HIDDEN +struct bt_ctf_clock *bt_ctf_event_get_clock(struct bt_ctf_event *event); + +/* + * bt_ctf_event_get_payload_field: get an event's payload. + * + * @param event Event instance. + * + * Returns a field instance on success, NULL on error. + */ +BT_HIDDEN +struct bt_ctf_field *bt_ctf_event_get_payload_field(struct bt_ctf_event *event); + +/* + * bt_ctf_event_set_payload_field: set an event's payload. + * + * @param event Event instance. + * @param payload Field instance (must be a structure). + * + * Returns 0 on success, a negative value on error. + */ +BT_HIDDEN +int bt_ctf_event_set_payload_field(struct bt_ctf_event *event, + struct bt_ctf_field *payload); + +/* + * bt_ctf_event_get_payload_by_index: Get event's field by index. + * + * Returns the field associated with the provided index. bt_ctf_field_put() + * must be called on the returned value. The indexes to be provided are + * the same as can be retrieved from the event class. + * + * @param event Event. + * @param index Index of field. + * + * Returns the event's field, NULL on error. + * + * Note: Will return an error if the payload's type is not a structure. + */ +BT_HIDDEN +struct bt_ctf_field *bt_ctf_event_get_payload_by_index( + struct bt_ctf_event *event, int index); + +/* + * bt_ctf_event_get_header: get an event's header. + * + * @param event Event instance. + * + * Returns a field instance on success, NULL on error. + */ +BT_HIDDEN +struct bt_ctf_field *bt_ctf_event_get_header(struct bt_ctf_event *event); + +/* + * bt_ctf_event_get_event_context: Get an event's context + * + * @param event_class Event class. + * + * Returns a field on success (a structure), NULL on error. + * + * Note: This function is named this way instead of the expected + * "bt_ctf_event_get_context" in order to work around a name clash with + * an unrelated function bearing this name in context.h. + */ +BT_HIDDEN +struct bt_ctf_field *bt_ctf_event_get_event_context(struct bt_ctf_event *event); + +/* + * bt_ctf_event_get_stream_event_context: Get an event's stream event context + * + * @param event_class Event class. + * + * Returns a field on success (a structure), NULL on error. + */ +BT_HIDDEN +struct bt_ctf_field *bt_ctf_event_get_stream_event_context( + struct bt_ctf_event *event); + +BT_HIDDEN +uint64_t bt_ctf_event_get_clock_value(struct bt_ctf_event *event, + struct bt_ctf_clock *clock); + +/* + * bt_ctf_event_set_header: set an event's header. + * + * The event header's type must match the stream class' event + * header type. + * + * @param event Event instance. + * @param header Event header field instance. + * + * Returns a field instance on success, NULL on error. + */ +BT_HIDDEN +int bt_ctf_event_set_header( + struct bt_ctf_event *event, + struct bt_ctf_field *header); + +/* + * bt_ctf_event_set_event_context: Set an event's context + * + * @param event Event. + * @param context Event context field (must match the event class' + * context type). + * + * Returns 0 on success, a negative value on error. + */ +BT_HIDDEN +int bt_ctf_event_set_event_context(struct bt_ctf_event *event, + struct bt_ctf_field *context); + +/* + * bt_ctf_event_set_stream_event_context: Set an event's stream event context + * + * @param event Event. + * @param context Event stream context field (must match the stream class' + * stream event context type). + * + * Returns 0 on success, a negative value on error. + */ +BT_HIDDEN +int bt_ctf_event_set_stream_event_context(struct bt_ctf_event *event, + struct bt_ctf_field *context); + +BT_HIDDEN +int bt_ctf_event_set_packet(struct bt_ctf_event *event, + struct bt_ctf_packet *packet); + #endif /* BABELTRACE_CTF_IR_EVENT_INTERNAL_H */