X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-ir%2Fvisitor.h;h=06da7ac5e41d0fbd3311d1b2c677f5636fcdd699;hb=c800eb3790218d2f33df01e77ec38cbd43cc02a1;hp=2773006525516d45c0a9e480466da9edc29c1e7b;hpb=304b3717bca4d138e65880d5311d7cd1d444ab4b;p=babeltrace.git diff --git a/include/babeltrace/ctf-ir/visitor.h b/include/babeltrace/ctf-ir/visitor.h index 27730065..06da7ac5 100644 --- a/include/babeltrace/ctf-ir/visitor.h +++ b/include/babeltrace/ctf-ir/visitor.h @@ -39,12 +39,16 @@ extern "C" { @ingroup ctfir @brief CTF IR visitor. +@code +#include +@endcode + A CTF IR visitor is a function that you can use to visit the hierarchy of a \link ctfirtraceclass CTF IR trace class\endlink with -bt_ctf_trace_visit() or of a +bt_trace_visit() or of a \link ctfirstreamclass CTF IR stream class\endlink with -bt_ctf_stream_class_visit(). +bt_stream_class_visit(). The traversal of the object's hierarchy is always done in a pre-order fashion. @@ -61,14 +65,14 @@ pre-order fashion. */ /** -@struct bt_ctf_object +@struct bt_object @brief A CTF IR object wrapper. This structure wraps both a CTF IR object and its type -(see #bt_ctf_object_type). It is used in the visiting function. +(see #bt_object_type). It is used in the visiting function. -You can use the bt_ctf_object_get_type() and -bt_ctf_object_get_object() accessors to get the type and wrapped +You can use the bt_object_get_type() and +bt_object_get_object() accessors to get the type and wrapped CTF IR object of a CTF IR object wrapper. A CTF IR object wrapper has no reference count: do \em @@ -76,39 +80,39 @@ not use bt_put() or bt_get() on it. @sa ctfirvisitor */ -struct bt_ctf_object; +struct bt_visitor_object; /** @brief CTF IR object wrapper type. */ -enum bt_ctf_object_type { +enum bt_visitor_object_type { /// Unknown (used for errors). - BT_CTF_OBJECT_TYPE_UNKNOWN = -1, + BT_VISITOR_OBJECT_TYPE_UNKNOWN = -1, /// \ref ctfirtraceclass. - BT_CTF_OBJECT_TYPE_TRACE = 0, + BT_VISITOR_OBJECT_TYPE_TRACE = 0, /// \ref ctfirstreamclass. - BT_CTF_OBJECT_TYPE_STREAM_CLASS = 1, + BT_VISITOR_OBJECT_TYPE_STREAM_CLASS = 1, /// \ref ctfirstream. - BT_CTF_OBJECT_TYPE_STREAM = 2, + BT_VISITOR_OBJECT_TYPE_STREAM = 2, /// \ref ctfireventclass. - BT_CTF_OBJECT_TYPE_EVENT_CLASS = 3, + BT_VISITOR_OBJECT_TYPE_EVENT_CLASS = 3, /// \ref ctfirevent. - BT_CTF_OBJECT_TYPE_EVENT = 4, + BT_VISITOR_OBJECT_TYPE_EVENT = 4, /// Number of entries in this enumeration. - BT_CTF_OBJECT_TYPE_NR, + BT_VISITOR_OBJECT_TYPE_NR, }; /** @brief Visting function type. -A function of this type is called by bt_ctf_trace_visit() or -bt_ctf_stream_class_visit() when visiting the CTF IR object wrapper +A function of this type is called by bt_trace_visit() or +bt_stream_class_visit() when visiting the CTF IR object wrapper \p object. \p object has no reference count: do \em not use @@ -120,11 +124,11 @@ bt_put() or bt_get() on it. @prenotnull{object} -@sa bt_ctf_trace_visit(): Accepts a visitor to visit a trace class. -@sa bt_ctf_stream_class_visit(): Accepts a visitor to visit a stream +@sa bt_trace_visit(): Accepts a visitor to visit a trace class. +@sa bt_stream_class_visit(): Accepts a visitor to visit a stream class. */ -typedef int (*bt_ctf_visitor)(struct bt_ctf_object *object, +typedef int (*bt_visitor)(struct bt_visitor_object *object, void *data); /** @@ -136,25 +140,31 @@ typedef int (*bt_ctf_visitor)(struct bt_ctf_object *object, @prenotnull{object} -@sa bt_ctf_object_get_object(): Returns the object wrapped by a given +@sa bt_visitor_object_get_object(): Returns the object wrapped by a given CTF IR object wrapper. */ -enum bt_ctf_object_type bt_ctf_object_get_type(struct bt_ctf_object *object); +enum bt_visitor_object_type bt_visitor_object_get_type( + struct bt_visitor_object *object); /** @brief Returns the CTF IR object wrapped by the CTF IR object wrapper \p object. +The reference count of \p object is \em not incremented by this +function. On success, you must call bt_get() on the return value to +have your own reference. + @param[in] object Object wrapper of which to get the wrapped CTF IR object. @returns CTF IR object wrapped by \p object. @prenotnull{object} +@post The reference count of the returned object is not modified. -@sa bt_ctf_object_get_type(): Returns the type of a given +@sa bt_visitor_object_get_type(): Returns the type of a given CTF IR object wrapper. */ -void *bt_ctf_object_get_object(struct bt_ctf_object *object); +void *bt_visitor_object_get_object(struct bt_visitor_object *object); /** @} */