X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fgraph%2Fclock-class-priority-map.h;h=93f05ab83514e7d0f60941fbb0575abd9aab8f4e;hb=312c056ae3d374b253fa0cfe5ed576c0b0e5e569;hp=575e31c176c74848601227ba2460c92deb7308fd;hpb=fe650ea463f79d205d446a6f62b2e0016dbdf52e;p=babeltrace.git diff --git a/include/babeltrace/graph/clock-class-priority-map.h b/include/babeltrace/graph/clock-class-priority-map.h index 575e31c1..93f05ab8 100644 --- a/include/babeltrace/graph/clock-class-priority-map.h +++ b/include/babeltrace/graph/clock-class-priority-map.h @@ -26,15 +26,18 @@ * http://www.efficios.com/ctf */ +/* For bt_get() */ +#include + #include #include -#include -#include #ifdef __cplusplus extern "C" { #endif +struct bt_clock_class; + /** @defgroup graphclockclassprioritymap Clock class priority map @ingroup graph @@ -93,7 +96,7 @@ struct bt_clock_class_priority_map; @postsuccessrefcountret1 */ -extern struct bt_clock_class_priority_map *bt_clock_class_priority_map_create(); +extern struct bt_clock_class_priority_map *bt_clock_class_priority_map_create(void); /** @brief Returns the number of CTF IR clock classes contained in the @@ -109,9 +112,14 @@ extern struct bt_clock_class_priority_map *bt_clock_class_priority_map_create(); @prenotnull{clock_class_priority_map} @postrefcountsame{clock_class_priority_map} */ -extern int bt_clock_class_priority_map_get_clock_class_count( +extern int64_t bt_clock_class_priority_map_get_clock_class_count( struct bt_clock_class_priority_map *clock_class_priority_map); +extern struct bt_clock_class * +bt_clock_class_priority_map_borrow_clock_class_by_index( + struct bt_clock_class_priority_map *clock_class_priority_map, + uint64_t index); + /** @brief Returns the CTF IR clock class at index \p index in the clock class priority map \p clock_class_priority_map. @@ -139,9 +147,20 @@ extern int bt_clock_class_priority_map_get_clock_class_count( @sa bt_clock_class_priority_map_add_clock_class(): Adds a clock class to a clock class priority map. */ -extern struct bt_ctf_clock_class *bt_clock_class_priority_map_get_clock_class( +static inline +struct bt_clock_class * +bt_clock_class_priority_map_get_clock_class_by_index( struct bt_clock_class_priority_map *clock_class_priority_map, - unsigned int index); + uint64_t index) +{ + return bt_get(bt_clock_class_priority_map_borrow_clock_class_by_index( + clock_class_priority_map, index)); +} + +extern struct bt_clock_class * +bt_clock_class_priority_map_borrow_clock_class_by_name( + struct bt_clock_class_priority_map *clock_class_priority_map, + const char *name); /** @brief Returns the CTF IR clock class named \c name found in the clock @@ -161,7 +180,7 @@ extern struct bt_ctf_clock_class *bt_clock_class_priority_map_get_clock_class( @postrefcountsame{clock_class_priority_map} @postsuccessrefcountretinc -@sa bt_clock_class_priority_map_get_clock_class(): Returns the clock +@sa bt_clock_class_priority_map_get_clock_class_by_index(): Returns the clock class contained in a given clock class priority map at a given index. @sa bt_clock_class_priority_map_get_highest_priority_clock_class(): @@ -170,10 +189,18 @@ extern struct bt_ctf_clock_class *bt_clock_class_priority_map_get_clock_class( @sa bt_clock_class_priority_map_add_clock_class(): Adds a clock class to a clock class priority map. */ -extern struct bt_ctf_clock_class * -bt_clock_class_priority_map_get_clock_class_by_name( +static inline +struct bt_clock_class *bt_clock_class_priority_map_get_clock_class_by_name( struct bt_clock_class_priority_map *clock_class_priority_map, - const char *name); + const char *name) +{ + return bt_get(bt_clock_class_priority_map_borrow_clock_class_by_name( + clock_class_priority_map, name)); +} + +extern struct bt_clock_class * +bt_clock_class_priority_map_borrow_highest_priority_clock_class( + struct bt_clock_class_priority_map *clock_class_priority_map); /** @brief Returns the CTF IR clock class with the currently highest @@ -198,7 +225,7 @@ this function returns. @postrefcountsame{clock_class_priority_map} @postsuccessrefcountretinc -@sa bt_clock_class_priority_map_get_clock_class(): Returns the clock +@sa bt_clock_class_priority_map_get_clock_class_by_index(): Returns the clock class contained in a given clock class priority map at a given index. @sa bt_clock_class_priority_map_get_clock_class_by_name(): Finds a @@ -206,9 +233,15 @@ this function returns. @sa bt_clock_class_priority_map_add_clock_class(): Adds a clock class to a clock class priority map. */ -extern struct bt_ctf_clock_class * +static inline +struct bt_clock_class * bt_clock_class_priority_map_get_highest_priority_clock_class( - struct bt_clock_class_priority_map *clock_class_priority_map); + struct bt_clock_class_priority_map *clock_class_priority_map) +{ + return bt_get( + bt_clock_class_priority_map_borrow_highest_priority_clock_class( + clock_class_priority_map)); +} /** @brief Returns the priority of the CTF IR clock class \p clock_class @@ -240,7 +273,7 @@ bt_clock_class_priority_map_get_highest_priority_clock_class( */ extern int bt_clock_class_priority_map_get_clock_class_priority( struct bt_clock_class_priority_map *clock_class_priority_map, - struct bt_ctf_clock_class *clock_class, uint64_t *priority); + struct bt_clock_class *clock_class, uint64_t *priority); /** @brief Adds the CTF IR clock class \p clock_class to the clock class @@ -270,7 +303,7 @@ map. @postrefcountsame{clock_class_priority_map} @postsuccessrefcountinc{clock_class} -@sa bt_clock_class_priority_map_get_clock_class(): Returns the clock +@sa bt_clock_class_priority_map_get_clock_class_by_index(): Returns the clock class contained in a given clock class priority map at a given index. @sa bt_clock_class_priority_map_get_clock_class_by_name(): Finds a @@ -278,7 +311,28 @@ map. */ extern int bt_clock_class_priority_map_add_clock_class( struct bt_clock_class_priority_map *clock_class_priority_map, - struct bt_ctf_clock_class *clock_class, uint64_t priority); + struct bt_clock_class *clock_class, uint64_t priority); + +/** +@brief Creates a copy of the clock class priority map + \p clock_class_priority_map. + +You can copy a frozen clock class priority map: the resulting copy is +not frozen. + +@param[in] clock_class_priority_map Clock class priority map to copy. +@returns Copy of \p clock_class_priority_map + on success, or a negative value + on error. + +@prenotnull{clock_class_priority_map} +@postrefcountsame{clock_class_priority_map} +@postsuccessrefcountret1 +@post On success, the returned clock class priority map + is not frozen. +*/ +extern struct bt_clock_class_priority_map *bt_clock_class_priority_map_copy( + struct bt_clock_class_priority_map *clock_class_priority_map); /** @} */