X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fstream-class.h;h=bc1ece1dc6a6cc93d24d8a8dd6fee53f7700f5a6;hb=8bf65fbd5d6164488f1912f88ef632a58598ed2f;hp=b52dcb78c6a6004f0465784abf16b7e12952f10b;hpb=9f476966aa40bd0de2cd0654623ea03f8a3254eb;p=babeltrace.git diff --git a/include/babeltrace/ctf-ir/stream-class.h b/include/babeltrace/ctf-ir/stream-class.h index b52dcb78..bc1ece1d 100644 --- a/include/babeltrace/ctf-ir/stream-class.h +++ b/include/babeltrace/ctf-ir/stream-class.h @@ -30,6 +30,9 @@ * http://www.efficios.com/ctf */ +#include +#include + #ifdef __cplusplus extern "C" { #endif @@ -57,12 +60,22 @@ struct bt_ctf_clock; * - uint32_t id * - uint64_t timestamp * - * @param name Stream name. + * @param name Stream name, NULL to create an unnamed stream class. * * Returns an allocated stream class on success, NULL on error. */ extern struct bt_ctf_stream_class *bt_ctf_stream_class_create(const char *name); +/* + * bt_ctf_stream_class_get_trace: Get a stream class' associated trace. + * + * @param stream_class Stream class. + * + * Returns the stream class' associated trace, NULL on error. + */ +extern struct bt_ctf_trace *bt_ctf_stream_class_get_trace( + struct bt_ctf_stream_class *stream_class); + /* * bt_ctf_stream_class_get_name: Get a stream class' name. * @@ -74,29 +87,24 @@ extern const char *bt_ctf_stream_class_get_name( struct bt_ctf_stream_class *stream_class); /* - * bt_ctf_stream_class_get_clock: get the clock associated with a stream class. + * bt_ctf_stream_class_set_name: Set a stream class' name. * * @param stream_class Stream class. * - * Returns a clock instance, NULL on error. + * Returns 0 on success, a negative value on error. */ -extern struct bt_ctf_clock *bt_ctf_stream_class_get_clock( - struct bt_ctf_stream_class *stream_class); +extern int bt_ctf_stream_class_set_name( + struct bt_ctf_stream_class *stream_class, const char *name); /* - * bt_ctf_stream_class_set_clock: assign a clock to a stream class. - * - * Assign a clock to a stream class. This clock will be sampled each time an - * event is appended to an instance of this stream class. + * bt_ctf_stream_class_get_clock: get the clock associated with a stream class. * * @param stream_class Stream class. - * @param clock Clock to assign to the provided stream class. * - * Returns 0 on success, a negative value on error. + * Returns a clock instance, NULL on error. */ -extern int bt_ctf_stream_class_set_clock( - struct bt_ctf_stream_class *stream_class, - struct bt_ctf_clock *clock); +extern struct bt_ctf_clock *bt_ctf_stream_class_get_clock( + struct bt_ctf_stream_class *stream_class); /* * bt_ctf_stream_class_get_id: Get a stream class' id. @@ -132,7 +140,8 @@ extern int bt_ctf_stream_class_set_id( * 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. + * Note that an event class may only be added to one stream class. It + * also becomes immutable. * * @param stream_class Stream class. * @param event_class Event class to add to the provided stream class. @@ -177,6 +186,18 @@ extern struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class( 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); +/* + * bt_ctf_stream_class_get_event_class_by_name: Get stream class event class by + * ID. + * + * @param stream_class Stream class. + * @param id Event class ID. + * + * Returns event class, NULL on error. + */ +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); + /* * bt_ctf_stream_class_get_packet_context_type: get the stream class' packet * context type. @@ -252,21 +273,18 @@ extern int bt_ctf_stream_class_set_event_context_type( 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. + * bt_ctf_stream_class_visit: visit a stream class' event classes. * - * These functions ensure that the stream class won't be destroyed while it - * is in use. The same number of get and put (plus one extra put to - * release the initial reference done at creation) have to be done to - * destroy a stream class. + * Call visitor on each of a stream class' event classes. * - * When the stream class' reference count is decremented to 0 by a - * bt_ctf_stream_class_put, the stream class is freed. + * @param stream_class Stream class instance. + * @param visitor visitor function to invoke for each stream class. + * @param data user data passed to the visitor. * - * @param stream_class Stream class. + * Returns 0 on success, a negative value on error. */ -extern void bt_ctf_stream_class_get(struct bt_ctf_stream_class *stream_class); -extern void bt_ctf_stream_class_put(struct bt_ctf_stream_class *stream_class); +extern int bt_ctf_stream_class_visit(struct bt_ctf_stream_class *stream_class, + bt_ctf_ir_visitor visitor, void *data); #ifdef __cplusplus }