+/** @} */
+
+/**
+@name Event class children functions
+@{
+*/
+
+/**
+@brief Returns the number of event classes contained in the
+ CTF IR stream class \p stream_class.
+
+@param[in] stream_class Stream class of which to get the number
+ of children event classes.
+@returns Number of children event classes
+ contained in \p stream_class, or
+ a negative value on error.
+
+@prenotnull{stream_class}
+@postrefcountsame{stream_class}
+*/
+extern int64_t bt_ctf_stream_class_get_event_class_count(
+ struct bt_ctf_stream_class *stream_class);
+
+/**
+@brief Returns the event class at index \p index in the CTF IR stream
+ class \p stream_class.
+
+@param[in] stream_class Stream class of which to get the event class.
+@param[in] index Index of the event class to find.
+@returns Event class at index \p index, or \c NULL
+ on error.
+
+@prenotnull{stream_class}
+@pre \p index is lesser than the number of event classes contained in the
+ stream class \p stream_class (see
+ bt_ctf_stream_class_get_event_class_count()).
+@postrefcountsame{stream_class}
+@postsuccessrefcountretinc
+
+@sa bt_ctf_stream_class_get_event_class_by_id(): Finds an event class
+ by ID.
+*/
+extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_index(
+ struct bt_ctf_stream_class *stream_class, uint64_t index);
+
+/**
+@brief Returns the event class with ID \c id found in the CTF IR stream
+ class \p stream_class.
+
+@param[in] stream_class Stream class of which to get the event class.
+@param[in] id ID of the event class to find.
+@returns Event class with ID \p id, or \c NULL
+ on error.
+
+@prenotnull{stream_class}
+@postrefcountsame{stream_class}
+@postsuccessrefcountretinc
+*/
+extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_id(
+ struct bt_ctf_stream_class *stream_class, uint64_t id);
+
+/**
+@brief Adds the CTF IR event class \p event_class to the
+ CTF IR stream class \p stream_class.
+
+On success, \p event_class becomes the child of \p stream_class.
+
+You can only add a given event class to one stream class.
+
+You can call this function even if \p stream_class is frozen. Adding
+event classes is the only operation that is permitted
+on a frozen stream class.
+
+This function tries to resolve the needed
+\link ctfirfieldtypes CTF IR field type\endlink of the dynamic field
+types that are found anywhere in the context or payload field
+types of \p event_class. If any automatic resolving fails:
+
+- If the needed field type should be found in one of the root field
+ types of \p event_class or \p stream_class, this function fails.
+- If \p stream_class is the child of a
+ \link ctfirtraceclass CTF IR trace class\endlink (it was added
+ with bt_ctf_trace_add_stream_class()), this function fails.
+- If \p stream_class is not the child of a trace class yet, the
+ automatic resolving is reported to the next call to
+ bt_ctf_trace_add_stream_class() with \p stream_class.
+
+@param[in] stream_class Stream class to which to add \p event_class.
+@param[in] event_class Event class to add to \p stream_class.
+@returns 0 on success, or a negative value on error.
+
+@prenotnull{stream_class}
+@prenotnull{event_class}
+@prehot{event_class}
+@postrefcountsame{stream_class}
+@postsuccessrefcountinc{event_class}
+@postsuccessfrozen{event_class}
+*/
+extern int bt_ctf_stream_class_add_event_class(
+ struct bt_ctf_stream_class *stream_class,
+ struct bt_ctf_event_class *event_class);
+
+/** @} */
+
+/**
+@name Misc. function
+@{
+*/
+
+/**
+@brief Accepts the visitor \p visitor to visit the hierarchy of the
+ CTF IR stream class \p stream_class.
+
+This function traverses the hierarchy of \p stream_class in pre-order
+and calls \p visitor on each element.
+
+The stream class itself is visited first, and then all its children
+event classes.
+
+@param[in] stream_class Stream class to visit.
+@param[in] visitor Visiting function.
+@param[in] data User data.
+@returns 0 on success, or a negative value on error.
+
+@prenotnull{stream_class}
+@prenotnull{visitor}
+*/
+extern int bt_ctf_stream_class_visit(struct bt_ctf_stream_class *stream_class,
+ bt_ctf_visitor visitor, void *data);
+
+/** @} */
+
+/** @} */