+struct bt_ctf_stream_class;
+struct bt_ctf_packet;
+
+/**
+@name Creation and parent access functions
+@{
+*/
+
+/**
+@brief Creates a default CTF IR event from the CTF IR event class
+ \p event_class.
+
+\p event_class \em must have a parent
+\link ctfirstreamclass CTF IR stream class\endlink.
+
+On success, the four fields of the created event object are not set. You
+can set them with bt_ctf_event_set_header(),
+bt_ctf_event_set_stream_event_context(),
+bt_ctf_event_set_event_context(), and bt_ctf_event_set_payload_field().
+
+@param[in] event_class CTF IR event class to use to create the
+ CTF IR event.
+@returns Created event object, or \c NULL on error.
+
+@prenotnull{event_class}
+@pre \p event_class has a parent stream class.
+@postsuccessrefcountret1
+*/
+extern struct bt_ctf_event *bt_ctf_event_create(
+ struct bt_ctf_event_class *event_class);
+
+/**
+@brief Returns the parent CTF IR event class of the CTF IR event
+ \p event.
+
+This function returns a reference to the event class which was used to
+create the event object in the first place with bt_ctf_event_create().
+
+@param[in] event Event of which to get the parent event class.
+@returns Parent event class of \p event,
+ or \c NULL on error.
+
+@prenotnull{event}
+@postrefcountsame{event}
+@postsuccessrefcountretinc
+*/
+extern struct bt_ctf_event_class *bt_ctf_event_get_class(
+ struct bt_ctf_event *event);
+
+/**
+@brief Returns the CTF IR packet associated to the CTF IR event
+ \p event.
+
+This function returns a reference to the event class which was set to
+\p event in the first place with bt_ctf_event_set_packet().
+
+@param[in] event Event of which to get the associated packet.
+@returns Packet associated to \p event,
+ or \c NULL if no packet is associated to
+ \p event or on error.
+
+@prenotnull{event}
+@postrefcountsame{event}
+@postsuccessrefcountretinc
+
+@sa bt_ctf_event_set_packet(): Associates a given event to a given
+ packet.
+*/
+extern struct bt_ctf_packet *bt_ctf_event_get_packet(
+ struct bt_ctf_event *event);
+
+/**
+@brief Associates the CTF IR event \p event to the CTF IR packet
+ \p packet.
+
+The \link ctfirstreamclass CTF IR stream class\endlink of the
+parent \link ctfirstream CTF IR stream\endlink of \p packet \em must
+be the same as the parent stream class of the
+\link ctfireventclass CTF IR event class\endlink returned
+by bt_ctf_event_get_class() for \p event.
+
+You \em must call this function to create an event-packet association
+before you call bt_notification_event_create() with \p event.
+
+On success, this function also sets the parent stream object of
+\p event to the parent stream of \p packet.
+
+@param[in] event Event to which to associate \p packet.
+@returns 0 on success, or a negative value on error.
+
+@prenotnull{event}
+@prenotnull{packet}
+@prehot{event}
+@pre The parent stream class of \p packet is the same as the parent
+ stream class of \p event.
+@postsuccessrefcountretinc
+
+@sa bt_ctf_event_get_packet(): Returns the associated packet of a
+ given event object.
+*/
+extern int bt_ctf_event_set_packet(struct bt_ctf_event *event,
+ struct bt_ctf_packet *packet);
+
+/**
+@brief Returns the parent CTF IR stream associated to the CTF IR event
+ \p event.
+
+@param[in] event Event of which to get the parent stream.
+@returns Parent stream of \p event, or \c NULL on error.
+
+@prenotnull{event}
+@postrefcountsame{event}
+@postsuccessrefcountretinc
+*/
+extern struct bt_ctf_stream *bt_ctf_event_get_stream(
+ struct bt_ctf_event *event);
+
+/** @} */
+
+/**
+@name Contained fields functions
+@{
+*/
+
+/**
+@brief Returns the stream event header field of the CTF IR event
+ \p event.
+
+@param[in] event Event of which to get the stream event header
+ field.
+@returns Stream event header field of \p event,
+ or \c NULL if the stream event header
+ field is not set or on error.
+
+@prenotnull{event}
+@postrefcountsame{event}
+@postsuccessrefcountretinc
+
+@sa bt_ctf_event_get_header(): Sets the stream event header
+ field of a given event.
+*/
+extern struct bt_ctf_field *bt_ctf_event_get_header(
+ struct bt_ctf_event *event);
+
+/**
+@brief Sets the stream event header field of the CTF IR event
+ \p event to \p header.
+
+The field type of \p header, as returned by bt_ctf_field_get_type(),
+\em must be equivalent to the field type returned by
+bt_ctf_stream_class_get_event_header_type() for the parent stream class
+of \p event.
+
+@param[in] event Event of which to set the stream event header
+ field.
+@param[in] header Stream event header field.
+@returns 0 on success, or a negative value on error.
+
+@prenotnull{event}
+@prenotnull{header}
+@prehot{event}
+@pre \p header has a field type equivalent to the field type returned by
+ bt_ctf_stream_class_get_event_header_type() for the parent
+ stream class of \p event.
+@postrefcountsame{event}
+@postsuccessrefcountinc{header}
+
+@sa bt_ctf_event_get_header(): Returns the stream event header field
+ of a given event.
+*/
+extern int bt_ctf_event_set_header(struct bt_ctf_event *event,
+ struct bt_ctf_field *header);
+
+/**
+@brief Returns the stream event context field of the CTF IR event
+ \p event.
+
+@param[in] event Event of which to get the stream event context
+ field.
+@returns Stream event context field of \p event,
+ or \c NULL if the stream event context
+ field is not set or on error.
+
+@prenotnull{event}
+@postrefcountsame{event}
+@postsuccessrefcountretinc
+
+@sa bt_ctf_event_set_stream_event_context(): Sets the stream event
+ context field of a given event.
+*/
+extern struct bt_ctf_field *bt_ctf_event_get_stream_event_context(
+ struct bt_ctf_event *event);
+
+/**
+@brief Sets the stream event context field of the CTF IR event
+ \p event to \p context.
+
+The field type of \p context, as returned by bt_ctf_field_get_type(),
+\em must be equivalent to the field type returned by
+bt_ctf_stream_class_get_event_context_type() for the parent stream class
+of \p event.
+
+@param[in] event Event of which to set the stream event context
+ field.
+@param[in] context Stream event context field.
+@returns 0 on success, or a negative value on error.
+
+@prenotnull{event}
+@prenotnull{context}
+@prehot{event}
+@pre \p context has a field type equivalent to the field type returned
+ by bt_ctf_stream_class_get_event_context_type() for the parent
+ stream class of \p event.
+@postrefcountsame{event}
+@postsuccessrefcountinc{context}
+
+@sa bt_ctf_event_get_stream_event_context(): Returns the stream event
+ context field of a given event.
+*/
+extern int bt_ctf_event_set_stream_event_context(struct bt_ctf_event *event,
+ struct bt_ctf_field *context);
+
+/**
+@brief Returns the event context field of the CTF IR event
+ \p event.
+
+@param[in] event Event of which to get the event context
+ field.
+@returns Event context field of \p event, or \c NULL if
+ the event context field is not set or on error.
+
+@prenotnull{event}
+@postrefcountsame{event}
+@postsuccessrefcountretinc
+
+@sa bt_ctf_event_set_event_context(): Sets the event context field of a
+ given event.
+*/
+extern struct bt_ctf_field *bt_ctf_event_get_event_context(
+ struct bt_ctf_event *event);
+
+/**
+@brief Sets the event context field of the CTF IR event
+ \p event to \p context.
+
+The field type of \p context, as returned by bt_ctf_field_get_type(),
+\em must be equivalent to the field type returned by
+bt_ctf_event_class_get_context_type() for the parent event class
+of \p event.
+
+@param[in] event Event of which to set the event context field.
+@param[in] context Event context field.
+@returns 0 on success, or a negative value on error.
+
+@prenotnull{event}
+@prenotnull{context}
+@prehot{event}
+@pre \p context has a field type equivalent to the field type returned
+ by bt_ctf_event_class_get_context_type() for the parent
+ event class of \p event.
+@postrefcountsame{event}
+@postsuccessrefcountinc{context}
+
+@sa bt_ctf_event_get_event_context(): Returns the event context field of
+ a given event.
+*/
+extern int bt_ctf_event_set_event_context(struct bt_ctf_event *event,
+ struct bt_ctf_field *context);
+
+/**
+@brief Returns the event payload field of the CTF IR event
+ \p event.
+
+@param[in] event Event of which to get the event payload
+ field.
+@returns Event payload field of \p event, or \c NULL if
+ the event payload field is not set or on error.
+
+@prenotnull{event}
+@postrefcountsame{event}
+@postsuccessrefcountretinc
+
+@sa bt_ctf_event_set_payload_field(): Sets the event payload field of a
+ given event.
+*/
+extern struct bt_ctf_field *bt_ctf_event_get_payload_field(
+ struct bt_ctf_event *event);
+
+/**
+@brief Sets the event payload field of the CTF IR event
+ \p event to \p payload.
+
+The field type of \p payload, as returned by bt_ctf_field_get_type(),
+\em must be equivalent to the field type returned by
+bt_ctf_event_class_get_payload_type() for the parent event class
+of \p event.
+
+@param[in] event Event of which to set the event payload field.
+@param[in] payload Event payload field.
+@returns 0 on success, or a negative value on error.
+
+@prenotnull{event}
+@prenotnull{payload}
+@prehot{event}
+@pre \p payload has a field type equivalent to the field type returned
+ by bt_ctf_event_class_get_payload_type() for the parent
+ event class of \p event.
+@postrefcountsame{event}
+@postsuccessrefcountinc{payload}
+
+@sa bt_ctf_event_get_payload_field(): Returns the event payload field of
+ a given event.
+*/
+extern int bt_ctf_event_set_payload_field(struct bt_ctf_event *event,
+ struct bt_ctf_field *payload);
+
+/**
+@cond DOCUMENT
+*/