Babeltrace 2 C API
2.0.0
Open-source trace manipulation framework
|
Class of traces.
A trace class is the class of traces:
In the illustration above, notice that a trace is an instance of a trace class.
A trace class is a trace IR metadata object.
A trace class is a shared object: get a new reference with bt_trace_class_get_ref() and put an existing reference with bt_trace_class_put_ref().
Some library functions freeze trace classes on success. The documentation of those functions indicate this postcondition. With a frozen trace class, you can still:
The type of a trace class is bt_trace_class.
A trace class contains stream classes. All the stream classes of a given trace class have unique numeric IDs. Get the number of stream classes in a trace class with bt_trace_class_get_stream_class_count(). Borrow a specific stream class from a trace class with bt_trace_class_borrow_stream_class_by_index(), bt_trace_class_borrow_stream_class_by_index_const(), bt_trace_class_borrow_stream_class_by_id(), or bt_trace_class_borrow_stream_class_by_id_const().
Set whether or not the stream classes you create for a trace class get automatic numeric IDs with bt_trace_class_set_assigns_automatic_stream_class_id().
Create a default trace class from a self component with bt_trace_class_create().
Add to and remove a destruction listener from a trace class with bt_trace_class_add_destruction_listener() and bt_trace_class_remove_destruction_listener().
A trace class has the following properties:
Whether or not the stream classes you create and add to the trace class get numeric IDs automatically.
Depending on the value of this property, to create a stream class and add it to the trace class:
Use bt_trace_class_set_assigns_automatic_stream_class_id() and bt_trace_class_assigns_automatic_stream_class_id().
User attributes of the trace class.
User attributes are custom attributes attached to a trace class.
Use bt_trace_class_set_user_attributes(), bt_trace_class_borrow_user_attributes(), and bt_trace_class_borrow_user_attributes_const().
Type | |
typedef struct bt_trace_class | bt_trace_class |
Trace class. | |
Creation | |
bt_trace_class * | bt_trace_class_create (bt_self_component *self_component) |
Creates a default trace class from the self component self_component. More... | |
Stream class access | |
uint64_t | bt_trace_class_get_stream_class_count (const bt_trace_class *trace_class) |
Returns the number of stream classes contained in the trace class trace_class. More... | |
bt_stream_class * | bt_trace_class_borrow_stream_class_by_index (bt_trace_class *trace_class, uint64_t index) |
Borrows the stream class at index index from the trace class trace_class. More... | |
const bt_stream_class * | bt_trace_class_borrow_stream_class_by_index_const (const bt_trace_class *trace_class, uint64_t index) |
Borrows the stream class at index index from the trace class trace_class (const version). More... | |
bt_stream_class * | bt_trace_class_borrow_stream_class_by_id (bt_trace_class *trace_class, uint64_t id) |
Borrows the stream class having the numeric ID id from the trace class trace_class. More... | |
const bt_stream_class * | bt_trace_class_borrow_stream_class_by_id_const (const bt_trace_class *trace_class, uint64_t id) |
Borrows the stream class having the numeric ID id from the trace class trace_class (const version). More... | |
Properties | |
void | bt_trace_class_set_assigns_automatic_stream_class_id (bt_trace_class *trace_class, bt_bool assigns_automatic_stream_class_id) |
Sets whether or not the trace class trace_class automatically assigns a numeric ID to a stream class you create and add to it. More... | |
bt_bool | bt_trace_class_assigns_automatic_stream_class_id (const bt_trace_class *trace_class) |
Returns whether or not the trace class trace_class automatically assigns a numeric ID to a stream class you create and add to it. More... | |
void | bt_trace_class_set_user_attributes (bt_trace_class *trace_class, const bt_value *user_attributes) |
Sets the user attributes of the trace class trace_class to user_attributes. More... | |
bt_value * | bt_trace_class_borrow_user_attributes (bt_trace_class *trace_class) |
Borrows the user attributes of the trace class trace_class. More... | |
const bt_value * | bt_trace_class_borrow_user_attributes_const (const bt_trace_class *trace_class) |
Borrows the user attributes of the trace class trace_class (const version). More... | |
Reference count | |
void | bt_trace_class_get_ref (const bt_trace_class *trace_class) |
Increments the reference count of the trace class trace_class. More... | |
void | bt_trace_class_put_ref (const bt_trace_class *trace_class) |
Decrements the reference count of the trace class trace_class. More... | |
#define | BT_TRACE_CLASS_PUT_REF_AND_RESET(_trace_class) |
Decrements the reference count of the trace class _trace_class, and then sets _trace_class to NULL . More... | |
#define | BT_TRACE_CLASS_MOVE_REF(_dst, _src) |
Decrements the reference count of the trace class _dst, sets _dst to _src, and then sets _src to NULL . More... | |
typedef void(* bt_trace_class_destruction_listener_func) (const bt_trace_class *trace_class, void *user_data) |
User function for bt_trace_class_add_destruction_listener().
This is the user function type for a trace class destruction listener.
[in] | trace_class | Trace class being destroyed (frozen). |
[in] | user_data | User data, as passed as the user_data parameter of bt_trace_class_add_destruction_listener(). |
NULL
.Status codes for bt_trace_class_add_destruction_listener().
Enumerator | |
---|---|
BT_TRACE_CLASS_ADD_LISTENER_STATUS_OK | Success. |
BT_TRACE_CLASS_ADD_LISTENER_STATUS_MEMORY_ERROR | Out of memory. |
Status codes for bt_trace_class_remove_destruction_listener().
Enumerator | |
---|---|
BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_OK | Success. |
BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_MEMORY_ERROR | Out of memory. |
#define BT_TRACE_CLASS_PUT_REF_AND_RESET | ( | _trace_class | ) |
Decrements the reference count of the trace class _trace_class, and then sets _trace_class to NULL
.
_trace_class | Trace class of which to decrement the reference count. Can contain |
#define BT_TRACE_CLASS_MOVE_REF | ( | _dst, | |
_src | |||
) |
Decrements the reference count of the trace class _dst, sets _dst to _src, and then sets _src to NULL
.
This macro effectively moves a trace class reference from the expression _src to the expression _dst, putting the existing _dst reference.
_dst | Destination expression. Can contain |
_src | Source expression. Can contain |
bt_trace_class* bt_trace_class_create | ( | bt_self_component * | self_component | ) |
Creates a default trace class from the self component self_component.
On success, the returned trace class has the following property values:
Property | Value |
---|---|
Assigns automatic stream class IDs? | Yes |
User attributes | Empty map value |
[in] | self_component | Self component from which to create the default trace class. |
NULL
on memory error. uint64_t bt_trace_class_get_stream_class_count | ( | const bt_trace_class * | trace_class | ) |
Returns the number of stream classes contained in the trace class trace_class.
[in] | trace_class | Trace class of which to get the number of contained stream classes. |
NULL
. bt_stream_class* bt_trace_class_borrow_stream_class_by_index | ( | bt_trace_class * | trace_class, |
uint64_t | index | ||
) |
Borrows the stream class at index index from the trace class trace_class.
[in] | trace_class | Trace class from which to borrow the stream class at index index. |
[in] | index | Index of the stream class to borrow from trace_class. |
Borrowed reference of the stream class of trace_class at index index.
The returned pointer remains valid as long as trace_class exists.
NULL
. const
version of this function. const bt_stream_class* bt_trace_class_borrow_stream_class_by_index_const | ( | const bt_trace_class * | trace_class, |
uint64_t | index | ||
) |
Borrows the stream class at index index from the trace class trace_class (const
version).
bt_stream_class* bt_trace_class_borrow_stream_class_by_id | ( | bt_trace_class * | trace_class, |
uint64_t | id | ||
) |
Borrows the stream class having the numeric ID id from the trace class trace_class.
If there's no stream class having the numeric ID id in trace_class, this function returns NULL
.
[in] | trace_class | Trace class from which to borrow the stream class having the numeric ID id. |
[in] | id | ID of the stream class to borrow from trace_class. |
Borrowed reference of the stream class of trace_class having the numeric ID id, or NULL
if none.
The returned pointer remains valid as long as trace_class exists.
NULL
.const
version of this function. const bt_stream_class* bt_trace_class_borrow_stream_class_by_id_const | ( | const bt_trace_class * | trace_class, |
uint64_t | id | ||
) |
Borrows the stream class having the numeric ID id from the trace class trace_class (const
version).
void bt_trace_class_set_assigns_automatic_stream_class_id | ( | bt_trace_class * | trace_class, |
bt_bool | assigns_automatic_stream_class_id | ||
) |
Sets whether or not the trace class trace_class automatically assigns a numeric ID to a stream class you create and add to it.
See the assigns automatic stream class IDs? property.
[in] | trace_class | Trace class of which to set whether or not it assigns automatic stream class IDs. |
[in] | assigns_automatic_stream_class_id | BT_TRUE to make trace_class assign automatic stream class IDs. |
NULL
. bt_bool bt_trace_class_assigns_automatic_stream_class_id | ( | const bt_trace_class * | trace_class | ) |
Returns whether or not the trace class trace_class automatically assigns a numeric ID to a stream class you create and add to it.
See the assigns automatic stream class IDs? property.
[in] | trace_class | Trace class of which to get whether or not it assigns automatic stream class IDs. |
NULL
.void bt_trace_class_set_user_attributes | ( | bt_trace_class * | trace_class, |
const bt_value * | user_attributes | ||
) |
Sets the user attributes of the trace class trace_class to user_attributes.
See the user attributes property.
[in] | trace_class | Trace class of which to set the user attributes to user_attributes. |
[in] | user_attributes | New user attributes of trace_class. |
NULL
. NULL
. bt_value* bt_trace_class_borrow_user_attributes | ( | bt_trace_class * | trace_class | ) |
Borrows the user attributes of the trace class trace_class.
See the user attributes property.
[in] | trace_class | Trace class from which to borrow the user attributes. |
NULL
.const
version of this function. const bt_value* bt_trace_class_borrow_user_attributes_const | ( | const bt_trace_class * | trace_class | ) |
Borrows the user attributes of the trace class trace_class (const
version).
bt_trace_class_add_listener_status bt_trace_class_add_destruction_listener | ( | const bt_trace_class * | trace_class, |
bt_trace_class_destruction_listener_func | user_func, | ||
void * | user_data, | ||
bt_listener_id * | listener_id | ||
) |
Adds a destruction listener having the function user_func to the trace class trace_class.
All the destruction listener user functions of a trace class are called when it's being destroyed.
If listener_id is not NULL
, then this function, on success, sets *listener_id to the ID of the added destruction listener within trace_class. You can then use this ID to remove the added destruction listener with bt_trace_class_remove_destruction_listener().
[in] | trace_class | Trace class to add the destruction listener to. |
[in] | user_func | User function of the destruction listener to add to trace_class. |
[in] | user_data | User data to pass as the user_data parameter of user_func. |
[out] | listener_id | On success and if not NULL , *listener_id is the ID of the added destruction listener within trace_class. |
BT_TRACE_CLASS_ADD_LISTENER_STATUS_OK | Success. |
BT_TRACE_CLASS_ADD_LISTENER_STATUS_MEMORY_ERROR | Out of memory. |
NULL
. NULL
.bt_trace_class_remove_listener_status bt_trace_class_remove_destruction_listener | ( | const bt_trace_class * | trace_class, |
bt_listener_id | listener_id | ||
) |
Removes the destruction listener having the ID listener_id from the trace class trace_class.
The destruction listener to remove from trace_class was previously added with bt_trace_class_add_destruction_listener().
You can call this function when trace_class is frozen.
[in] | trace_class | Trace class from which to remove the destruction listener having the ID listener_id. |
[in] | listener_id | ID of the destruction listener to remove from trace_class. |
BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_OK | Success. |
BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_MEMORY_ERROR | Out of memory. |
NULL
. void bt_trace_class_get_ref | ( | const bt_trace_class * | trace_class | ) |
Increments the reference count of the trace class trace_class.
[in] | trace_class | Trace class of which to increment the reference count. Can be |
void bt_trace_class_put_ref | ( | const bt_trace_class * | trace_class | ) |
Decrements the reference count of the trace class trace_class.
[in] | trace_class | Trace class of which to decrement the reference count. Can be |