X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fstream.h;h=69829280c904e5cb4f7b3c65a01e9469853ae4a6;hp=5f0fd26bfda28c1522f946ce7cec5136032c2fab;hb=44c440bc5fe8219cc17d1b786d91fd83c4c9860a;hpb=c800eb3790218d2f33df01e77ec38cbd43cc02a1 diff --git a/include/babeltrace/ctf-ir/stream.h b/include/babeltrace/ctf-ir/stream.h index 5f0fd26b..69829280 100644 --- a/include/babeltrace/ctf-ir/stream.h +++ b/include/babeltrace/ctf-ir/stream.h @@ -30,8 +30,8 @@ * http://www.efficios.com/ctf */ -/* For bt_get() */ -#include +/* For enum bt_property_availability */ +#include #include @@ -39,150 +39,21 @@ extern "C" { #endif -struct bt_stream_class; - -/** -@defgroup ctfirstream CTF IR stream -@ingroup ctfir -@brief CTF IR stream. - -@code -#include -@endcode - -@note -See \ref ctfwriterstream which documents additional CTF IR stream -functions exclusive to the CTF writer mode. - -A CTF IR stream is an instance of a -\link ctfirstreamclass CTF IR stream class\endlink. - -You can obtain a CTF IR stream object in two different modes: - -- Normal mode: use bt_stream_create() or - bt_stream_create_with_id() with a stream class having a - \link ctfirtraceclass CTF IR trace class\endlink parent - \em not created by a \link ctfwriter CTF writer\endlink object to - create a default stream. -- CTF writer mode: use bt_stream_create() with - a stream class having a trace class parent created by a CTF writer - object, or use bt_writer_create_stream(). - -A CTF IR stream object represents a CTF stream, that is, a sequence of -packets containing events: - -@imgtracestructure - -A CTF IR stream does not contain, however, actual \link ctfirpacket CTF -IR packet\endlink objects: it only acts as a common parent to identify -the original CTF stream of packet objects. - -As with any Babeltrace object, CTF IR stream objects have -reference -counts. See \ref refs to learn more about the reference counting -management of Babeltrace objects. - -@sa ctfirstreamclass -@sa ctfirpacket -@sa ctfwriterstream - -@file -@brief CTF IR stream type and functions. -@sa ctfirstream - -@addtogroup ctfirstream -@{ -*/ - -/** -@struct bt_stream -@brief A CTF IR stream. -@sa ctfirstream -@sa ctfwriterstream -*/ struct bt_stream; -struct bt_event; - -/** -@brief Creates a default CTF IR stream named \p name with ID \p id - from the CTF IR stream class \p stream_class. - -\p stream_class \em must have a parent -\link ctfirtraceclass CTF IR trace class\endlink. - -\p id \em must be unique amongst the IDs of all the streams created -from \p stream_class with bt_stream_create_with_id(). - -\p name can be \c NULL to create an unnamed stream object. - -@param[in] stream_class CTF IR stream class to use to create the - CTF IR stream. -@param[in] name Name of the stream object to create (copied on - success) or \c NULL to create an unnamed stream. -@param[in] id ID of the stream object to create. -@returns Created stream object, or \c NULL on error. - -@prenotnull{stream_class} -@pre \p id is lesser than or equal to 9223372036854775807 (\c INT64_MAX). -@pre \p stream_class has a parent trace class. -@postsuccessrefcountret1 -*/ -extern struct bt_stream *bt_stream_create(struct bt_stream_class *stream_class, - const char *name, uint64_t id); +struct bt_stream_class; -/** -@brief Returns the name of the CTF IR stream \p stream. +extern struct bt_stream *bt_stream_create(struct bt_stream_class *stream_class); -On success, \p stream remains the sole owner of the returned string. +extern struct bt_stream *bt_stream_create_with_id( + struct bt_stream_class *stream_class, uint64_t id); -@param[in] stream Stream object of which to get the name. -@returns Name of stream \p stream, or \c NULL if - \p stream is unnamed or on error. +extern struct bt_stream_class *bt_stream_borrow_class(struct bt_stream *stream); -@prenotnull{stream} -@postrefcountsame{stream} -*/ extern const char *bt_stream_get_name(struct bt_stream *stream); -/** -@brief Returns the numeric ID of the CTF IR stream \p stream. - -@param[in] stream Stream of which to get the numeric ID. -@returns ID of stream \p stream, or a negative value - on error. - -@prenotnull{stream} -@postrefcountsame{stream} -*/ -extern int64_t bt_stream_get_id(struct bt_stream *stream); - -extern struct bt_stream_class *bt_stream_borrow_class( - struct bt_stream *stream); - -/** -@brief Returns the parent CTF IR stream class of the CTF IR - stream \p stream. - -This function returns a reference to the stream class which was used -to create the stream object in the first place with -bt_stream_create(). - -@param[in] stream Stream of which to get the parent stream class. -@returns Parent stream class of \p stream, - or \c NULL on error. - -@prenotnull{stream} -@postrefcountsame{stream} -@postsuccessrefcountretinc -*/ -static inline -struct bt_stream_class *bt_stream_get_class( - struct bt_stream *stream) -{ - return bt_get(bt_stream_borrow_class(stream)); -} +extern int bt_stream_set_name(struct bt_stream *stream, const char *name); -/** @} */ +extern uint64_t bt_stream_get_id(struct bt_stream *stream); #ifdef __cplusplus }