Make API CTF-agnostic
[babeltrace.git] / include / babeltrace / ctf-ir / stream.h
index 5f0fd26bfda28c1522f946ce7cec5136032c2fab..69829280c904e5cb4f7b3c65a01e9469853ae4a6 100644 (file)
@@ -30,8 +30,8 @@
  * http://www.efficios.com/ctf
  */
 
-/* For bt_get() */
-#include <babeltrace/ref.h>
+/* For enum bt_property_availability */
+#include <babeltrace/property.h>
 
 #include <stdint.h>
 
 extern "C" {
 #endif
 
-struct bt_stream_class;
-
-/**
-@defgroup ctfirstream CTF IR stream
-@ingroup ctfir
-@brief CTF IR stream.
-
-@code
-#include <babeltrace/ctf-ir/stream.h>
-@endcode
-
-@note
-See \ref ctfwriterstream which documents additional CTF IR stream
-functions exclusive to the CTF writer mode.
-
-A CTF IR <strong><em>stream</em></strong> is an instance of a
-\link ctfirstreamclass CTF IR stream class\endlink.
-
-You can obtain a CTF IR stream object in two different modes:
-
-- <strong>Normal mode</strong>: 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.
-- <strong>CTF writer mode</strong>: 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
-<a href="https://en.wikipedia.org/wiki/Reference_counting">reference
-counts</a>. 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
 }
This page took 0.025457 seconds and 4 git commands to generate.