X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fevent.h;h=67df08b5e53c390f67592c9ba34e87727500ecd6;hp=63926ba8c54849b8eab8aafb90b5cb5d8510bfcc;hb=44c440bc5fe8219cc17d1b786d91fd83c4c9860a;hpb=1556a1afe8d70a3a89155ff25815e203333a93e9 diff --git a/include/babeltrace/ctf-ir/event.h b/include/babeltrace/ctf-ir/event.h index 63926ba8..67df08b5 100644 --- a/include/babeltrace/ctf-ir/event.h +++ b/include/babeltrace/ctf-ir/event.h @@ -32,220 +32,45 @@ #include #include -#include + +/* For enum bt_clock_value_status */ +#include #ifdef __cplusplus extern "C" { #endif -struct bt_ctf_clock; -struct bt_ctf_clock_value; -struct bt_ctf_event_class; -struct bt_ctf_event; -struct bt_ctf_field; -struct bt_ctf_field_type; -struct bt_ctf_stream_class; -struct bt_ctf_packet; +struct bt_event; +struct bt_event_header_field; +struct bt_clock_value; +struct bt_event_class; +struct bt_field; +struct bt_packet; -/* - * bt_ctf_event_create: instanciate an event. - * - * Allocate a new event of the given event class. The creation of an event - * sets its reference count to 1. Each instance shares the ownership of the - * event class using its reference count. - * - * An event class must be associated with a stream class before events - * may be instanciated. - * - * @param event_class Event class. - * - * Returns an allocated field type on success, NULL on error. - */ -extern struct bt_ctf_event *bt_ctf_event_create( - struct bt_ctf_event_class *event_class); +extern struct bt_event_class *bt_event_borrow_class(struct bt_event *event); -/* - * bt_ctf_event_get_class: get an event's class. - * - * @param event Event. - * - * Returns the event's class, NULL on error. - */ -extern 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. - */ -extern struct bt_ctf_stream *bt_ctf_event_get_stream( - 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. - */ -extern struct bt_ctf_field *bt_ctf_event_get_payload_field( - struct bt_ctf_event *event); +extern struct bt_packet *bt_event_borrow_packet(struct bt_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. - */ -extern int bt_ctf_event_set_payload_field(struct bt_ctf_event *event, - struct bt_ctf_field *payload); +extern struct bt_stream *bt_event_borrow_stream(struct bt_event *event); -/* - * bt_ctf_event_get_payload: get an event's field. - * - * Returns the field matching "name". bt_put() must be called on the - * returned value. - * - * @param event Event instance. - * @param name Event field name, see notes. - * - * Returns a field instance on success, NULL on error. - * - * Note: Passing a name will cause the function to perform a look-up by - * name assuming the event's payload is a structure. This will return - * the raw payload instance if name is NULL. - */ -extern struct bt_ctf_field *bt_ctf_event_get_payload(struct bt_ctf_event *event, - const char *name); +extern struct bt_field *bt_event_borrow_header_field(struct bt_event *event); -/* - * bt_ctf_event_set_payload: set an event's field. - * - * Set a manually allocated field as an event's payload. The event will share - * the field's ownership by using its reference count. - * bt_put() must be called on the returned value. - * - * @param event Event instance. - * @param name Event field name, see notes. - * @param value Instance of a field whose type corresponds to the event's field. - * - * Returns 0 on success, a negative value on error. - * - * Note: The function will return an error if a name is provided and the payload - * type is not a structure. If name is NULL, the payload field will be set - * directly and must match the event class' payload's type. - */ -extern int bt_ctf_event_set_payload(struct bt_ctf_event *event, - const char *name, - struct bt_ctf_field *value); +extern int bt_event_move_header(struct bt_event *event, + struct bt_event_header_field *header); -/* - * bt_ctf_event_get_payload_by_index: Get event's field by index. - * - * Returns the field associated with the provided index. bt_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. - */ -extern 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. - */ -extern struct bt_ctf_field *bt_ctf_event_get_header( - struct bt_ctf_event *event); - -/* - * 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. - */ -extern int bt_ctf_event_set_header( - struct bt_ctf_event *event, - struct bt_ctf_field *header); - -/* - * 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. - */ -extern struct bt_ctf_field *bt_ctf_event_get_event_context( - struct bt_ctf_event *event); - -/* - * 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. - */ -extern int bt_ctf_event_set_event_context(struct bt_ctf_event *event, - struct bt_ctf_field *context); - -/* - * 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. - */ -extern struct bt_ctf_field *bt_ctf_event_get_stream_event_context( - struct bt_ctf_event *event); - -/* - * 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. - */ -extern int bt_ctf_event_set_stream_event_context(struct bt_ctf_event *event, - struct bt_ctf_field *context); +extern struct bt_field *bt_event_borrow_common_context_field( + struct bt_event *event); -extern struct bt_ctf_packet *bt_ctf_event_get_packet( - struct bt_ctf_event *event); +extern struct bt_field *bt_event_borrow_specific_context_field( + struct bt_event *event); -extern int bt_ctf_event_set_packet(struct bt_ctf_event *event, - struct bt_ctf_packet *packet); +extern struct bt_field *bt_event_borrow_payload_field(struct bt_event *event); -extern struct bt_ctf_clock_value *bt_ctf_event_get_clock_value( - struct bt_ctf_event *event, struct bt_ctf_clock *clock); +extern int bt_event_set_default_clock_value(struct bt_event *event, + uint64_t value_cycles); -extern int bt_ctf_event_set_clock_value( - struct bt_ctf_event *event, struct bt_ctf_clock *clock, - struct bt_ctf_clock_value *value); +extern enum bt_clock_value_status bt_event_borrow_default_clock_value( + struct bt_event *event, struct bt_clock_value **clock_value); #ifdef __cplusplus }