* http://www.efficios.com/ctf
*/
+#include <stdint.h>
+
#ifdef __cplusplus
extern "C" {
#endif
* - uint64_t packet_size
* - uint64_t events_discarded
*
- * @param name Stream name.
+ * A stream class's event header is a structure initialized the following
+ * fields:
+ * - uint32_t id
+ * - uint64_t timestamp
+ *
+ * @param name Stream name, NULL to create an unnamed stream class.
*
* Returns an allocated stream class on success, NULL on error.
*/
extern const char *bt_ctf_stream_class_get_name(
struct bt_ctf_stream_class *stream_class);
+/*
+ * bt_ctf_stream_class_set_name: Set a stream class' name.
+ *
+ * @param stream_class Stream class.
+ *
+ * Returns 0 on success, a negative value on error.
+ */
+extern int bt_ctf_stream_class_set_name(
+ struct bt_ctf_stream_class *stream_class, const char *name);
+
/*
* bt_ctf_stream_class_get_clock: get the clock associated with a stream class.
*
* The stream class will share the ownership of "event_class" by incrementing
* its reference count.
*
+ * Note that an event class may only be added to one stream class.
+ *
* @param stream_class Stream class.
* @param event_class Event class to add to the provided stream class.
*
*
* Returns the stream class' event count, a negative value on error.
*/
-extern int64_t bt_ctf_stream_class_get_event_class_count(
+extern int bt_ctf_stream_class_get_event_class_count(
struct bt_ctf_stream_class *stream_class);
/*
* Returns event class, NULL on error.
*/
extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class(
- struct bt_ctf_stream_class *stream_class, size_t index);
+ struct bt_ctf_stream_class *stream_class, int index);
/*
* bt_ctf_stream_class_get_event_class_by_name: Get stream class event class by
*
* @param stream_class Stream class.
*
- * Returns the packet context's type, NULL on error.
+ * Returns the packet context's type (a structure), NULL on error.
*/
extern struct bt_ctf_field_type *bt_ctf_stream_class_get_packet_context_type(
struct bt_ctf_stream_class *stream_class);
* context type.
*
* @param stream_class Stream class.
+ * @param packet_context_type Packet context type (must be a structure).
*
* Returns 0 on success, a negative value on error.
*/
struct bt_ctf_stream_class *stream_class,
struct bt_ctf_field_type *packet_context_type);
+/*
+ * bt_ctf_stream_class_get_event_header_type: get the stream class'
+ * event header type.
+ *
+ * @param stream_class Stream class.
+ *
+ * Returns the stream event header's type (a structure), NULL on error.
+ */
+extern struct bt_ctf_field_type *
+bt_ctf_stream_class_get_event_header_type(
+ struct bt_ctf_stream_class *stream_class);
+
+/*
+ * bt_ctf_stream_class_set_event_header_type: set the stream class'
+ * event header type.
+ *
+ * @param stream_class Stream class.
+ * @param event_header_type Event header type (must be a structure).
+ *
+ * Returns 0 on success, a negative value on error.
+ */
+extern int bt_ctf_stream_class_set_event_header_type(
+ struct bt_ctf_stream_class *stream_class,
+ struct bt_ctf_field_type *event_header_type);
+
+/*
+ * bt_ctf_stream_class_get_event_context_type: get the stream class'
+ * event context type.
+ *
+ * @param stream_class Stream class.
+ *
+ * Returns the stream event context's type (a structure), NULL on error.
+ */
+extern struct bt_ctf_field_type *
+bt_ctf_stream_class_get_event_context_type(
+ struct bt_ctf_stream_class *stream_class);
+
+/*
+ * bt_ctf_stream_class_set_event_context_type: set the stream class'
+ * event context type.
+ *
+ * @param stream_class Stream class.
+ * @param event_context_type Event context type (must be a structure).
+ *
+ * Returns 0 on success, a negative value on error.
+ */
+extern int bt_ctf_stream_class_set_event_context_type(
+ struct bt_ctf_stream_class *stream_class,
+ struct bt_ctf_field_type *event_context_type);
+
/*
* bt_ctf_stream_class_get and bt_ctf_stream_class_put: increment and
* decrement the stream class' reference count.