+/** @} */
+
+/**
+@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 int 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.
+@sa bt_ctf_stream_class_get_event_class_by_name(): Finds an event class
+ by name.
+*/
+extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class(
+ struct bt_ctf_stream_class *stream_class, int index);
+
+/**
+@brief Returns the event class named \c name 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] name Name of the event class to find.
+@returns Event class named \p name, or \c NULL
+ on error.
+
+@prenotnull{stream_class}
+@prenotnull{name}
+@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_name(
+ struct bt_ctf_stream_class *stream_class, const char *name);
+
+/**
+@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
+
+@sa bt_ctf_stream_class_get_event_class_by_name(): Finds an event class
+ by name.
+*/
+extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_id(
+ struct bt_ctf_stream_class *stream_class, uint32_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.
+
+@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}
+*/
+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);
+
+/** @} */
+
+/** @} */
+
+// TODO: document for writer
+extern struct bt_ctf_clock *bt_ctf_stream_class_get_clock(
+ struct bt_ctf_stream_class *stream_class);