objects: Doxygen: note about frozen copy
[babeltrace.git] / include / babeltrace / objects.h
index 77be607c054b3abfe07c4b86da11ad97fe0533e0..420bd628c379a4a021632522e1d2a3d01c291af5 100644 (file)
@@ -155,7 +155,7 @@ enum bt_object_type {
        /** Boolean object (holds \c true or \c false). */
        BT_OBJECT_TYPE_BOOL =           1,
 
-       /** Integer (holds a signed 64-bit integer value). */
+       /** Integer object (holds a signed 64-bit integer value). */
        BT_OBJECT_TYPE_INTEGER =        2,
 
        /**
@@ -202,10 +202,14 @@ struct bt_object;
 /**
  * The null object singleton.
  *
- * Use this everytime you need a null object. The null object singleton
- * has no reference count; there's only one. You may directly compare
- * any object to the null singleton to find out if it's a null object,
- * or otherwise use bt_object_is_null().
+ * Use this everytime you need a null object.
+ *
+ * The null object singleton has no reference count; there's only one.
+ * You may directly compare any object to the null object singleton to
+ * find out if it's a null object, or otherwise use bt_object_is_null().
+ *
+ * The null object singleton is always frozen (see bt_object_freeze()
+ * and bt_object_is_frozen()).
  *
  * Functions of this API return this when the object is actually a
  * null object (of type #BT_OBJECT_TYPE_NULL), whereas \c NULL means an
@@ -270,6 +274,8 @@ typedef bool (* bt_object_map_foreach_cb)(const char *key,
  * Increments the reference count of \p object.
  *
  * @param object       Object of which to increment the reference count
+ *
+ * @see bt_object_put()
  */
 extern void bt_object_get(struct bt_object *object);
 
@@ -281,6 +287,7 @@ extern void bt_object_get(struct bt_object *object);
  *
  * @see BT_OBJECT_PUT() (puts an object and resets the variable to
  *                     \c NULL)
+ * @see bt_object_get()
  */
 extern void bt_object_put(struct bt_object *object);
 
@@ -296,6 +303,8 @@ extern void bt_object_put(struct bt_object *object);
  *                     is already frozen, though, #BT_OBJECT_STATUS_OK
  *                     is returned anyway (i.e. this function never
  *                     returns #BT_OBJECT_STATUS_FROZEN)
+ *
+ * @see bt_object_is_frozen()
  */
 extern enum bt_object_status bt_object_freeze(struct bt_object *object);
 
@@ -304,6 +313,8 @@ extern enum bt_object_status bt_object_freeze(struct bt_object *object);
  *
  * @param object       Object to check
  * @returns            \c true if \p object is frozen
+ *
+ * @see bt_object_freeze()
  */
 extern bool bt_object_is_frozen(const struct bt_object *object);
 
@@ -315,6 +326,13 @@ extern bool bt_object_is_frozen(const struct bt_object *object);
  *                     on error
  *
  * @see #bt_object_type (object types)
+ * @see bt_object_is_null()
+ * @see bt_object_is_bool()
+ * @see bt_object_is_integer()
+ * @see bt_object_is_float()
+ * @see bt_object_is_string()
+ * @see bt_object_is_array()
+ * @see bt_object_is_map()
  */
 extern enum bt_object_type bt_object_get_type(const struct bt_object *object);
 
@@ -324,6 +342,8 @@ extern enum bt_object_type bt_object_get_type(const struct bt_object *object);
  *
  * @param object       Object to check
  * @returns            \c true if \p object is a null object
+ *
+ * @see bt_object_get_type()
  */
 static inline
 bool bt_object_is_null(const struct bt_object *object)
@@ -336,6 +356,8 @@ bool bt_object_is_null(const struct bt_object *object)
  *
  * @param object       Object to check
  * @returns            \c true if \p object is a boolean object
+ *
+ * @see bt_object_get_type()
  */
 static inline
 bool bt_object_is_bool(const struct bt_object *object)
@@ -348,6 +370,8 @@ bool bt_object_is_bool(const struct bt_object *object)
  *
  * @param object       Object to check
  * @returns            \c true if \p object is an integer object
+ *
+ * @see bt_object_get_type()
  */
 static inline
 bool bt_object_is_integer(const struct bt_object *object)
@@ -359,7 +383,10 @@ bool bt_object_is_integer(const struct bt_object *object)
  * Checks whether \p object is a floating point number object.
  *
  * @param object       Object to check
- * @returns            \c true if \p object is a floating point number object
+ * @returns            \c true if \p object is a floating point
+ *                     number object
+ *
+ * @see bt_object_get_type()
  */
 static inline
 bool bt_object_is_float(const struct bt_object *object)
@@ -372,6 +399,8 @@ bool bt_object_is_float(const struct bt_object *object)
  *
  * @param object       Object to check
  * @returns            \c true if \p object is a string object
+ *
+ * @see bt_object_get_type()
  */
 static inline
 bool bt_object_is_string(const struct bt_object *object)
@@ -384,6 +413,8 @@ bool bt_object_is_string(const struct bt_object *object)
  *
  * @param object       Object to check
  * @returns            \c true if \p object is an array object
+ *
+ * @see bt_object_get_type()
  */
 static inline
 bool bt_object_is_array(const struct bt_object *object)
@@ -396,6 +427,8 @@ bool bt_object_is_array(const struct bt_object *object)
  *
  * @param object       Object to check
  * @returns            \c true if \p object is a map object
+ *
+ * @see bt_object_get_type()
  */
 static inline
 bool bt_object_is_map(const struct bt_object *object)
@@ -410,6 +443,9 @@ bool bt_object_is_map(const struct bt_object *object)
  * The created object's reference count is set to 1.
  *
  * @returns    Created object on success, or \c NULL on error
+ *
+ * @see bt_object_bool_create_init() (creates an initialized
+ *                                  boolean object)
  */
 extern struct bt_object *bt_object_bool_create(void);
 
@@ -430,6 +466,9 @@ extern struct bt_object *bt_object_bool_create_init(bool val);
  * The created object's reference count is set to 1.
  *
  * @returns    Created object on success, or \c NULL on error
+ *
+ * @see bt_object_integer_create_init() (creates an initialized
+ *                                     integer object)
  */
 extern struct bt_object *bt_object_integer_create(void);
 
@@ -450,6 +489,9 @@ extern struct bt_object *bt_object_integer_create_init(int64_t val);
  * The created object's reference count is set to 1.
  *
  * @returns    Created object on success, or \c NULL on error
+ *
+ * @see bt_object_float_create_init() (creates an initialized floating
+ *                                   point number object)
  */
 extern struct bt_object *bt_object_float_create(void);
 
@@ -470,6 +512,9 @@ extern struct bt_object *bt_object_float_create_init(double val);
  * The created object's reference count is set to 1.
  *
  * @returns    Created object on success, or \c NULL on error
+ *
+ * @see bt_object_string_create_init() (creates an initialized
+ *                                    string object)
  */
 extern struct bt_object *bt_object_string_create(void);
 
@@ -509,6 +554,8 @@ extern struct bt_object *bt_object_map_create(void);
  * @param bool_obj     Boolean object
  * @param val          Returned boolean value
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_bool_set()
  */
 extern enum bt_object_status bt_object_bool_get(
        const struct bt_object *bool_obj, bool *val);
@@ -519,6 +566,8 @@ extern enum bt_object_status bt_object_bool_get(
  * @param bool_obj     Boolean object
  * @param val          New boolean value
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_bool_get()
  */
 extern enum bt_object_status bt_object_bool_set(struct bt_object *bool_obj,
        bool val);
@@ -529,6 +578,8 @@ extern enum bt_object_status bt_object_bool_set(struct bt_object *bool_obj,
  * @param integer_obj  Integer object
  * @param val          Returned integer value
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_integer_set()
  */
 extern enum bt_object_status bt_object_integer_get(
        const struct bt_object *integer_obj, int64_t *val);
@@ -540,6 +591,8 @@ extern enum bt_object_status bt_object_integer_get(
  * @param integer_obj  Integer object
  * @param val          New integer value
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_integer_get()
  */
 extern enum bt_object_status bt_object_integer_set(
        struct bt_object *integer_obj, int64_t val);
@@ -551,6 +604,8 @@ extern enum bt_object_status bt_object_integer_set(
  * @param float_obj    Floating point number object
  * @param val          Returned floating point number value
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_float_set()
  */
 extern enum bt_object_status bt_object_float_get(
        const struct bt_object *float_obj, double *val);
@@ -562,6 +617,8 @@ extern enum bt_object_status bt_object_float_get(
  * @param float_obj    Floating point number object
  * @param val          New floating point number value
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_float_get()
  */
 extern enum bt_object_status bt_object_float_set(
        struct bt_object *float_obj, double val);
@@ -575,6 +632,8 @@ extern enum bt_object_status bt_object_float_set(
  * @param string_obj   String object
  * @param val          Returned string value
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_string_set()
  */
 extern enum bt_object_status bt_object_string_get(
        const struct bt_object *string_obj, const char **val);
@@ -588,6 +647,8 @@ extern enum bt_object_status bt_object_string_get(
  * @param string_obj   String object
  * @param val          New string value (copied)
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_string_get()
  */
 extern enum bt_object_status bt_object_string_set(struct bt_object *string_obj,
        const char *val);
@@ -600,6 +661,8 @@ extern enum bt_object_status bt_object_string_set(struct bt_object *string_obj,
  * @returns            Array size if the return value is 0 (empty) or a
  *                     positive value, or one of
  *                     #bt_object_status negative values otherwise
+ *
+ * @see bt_object_array_is_empty()
  */
 extern int bt_object_array_size(const struct bt_object *array_obj);
 
@@ -608,6 +671,8 @@ extern int bt_object_array_size(const struct bt_object *array_obj);
  *
  * @param array_obj    Array object
  * @returns            \c true if \p array_obj is empty
+ *
+ * @see bt_object_array_size()
  */
 extern bool bt_object_array_is_empty(const struct bt_object *array_obj);
 
@@ -636,6 +701,13 @@ extern struct bt_object *bt_object_array_get(const struct bt_object *array_obj,
  * @param array_obj    Array object
  * @param element_obj  Element object to append
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_array_append_bool()
+ * @see bt_object_array_append_integer()
+ * @see bt_object_array_append_float()
+ * @see bt_object_array_append_string()
+ * @see bt_object_array_append_array()
+ * @see bt_object_array_append_map()
  */
 extern enum bt_object_status bt_object_array_append(struct bt_object *array_obj,
        struct bt_object *element_obj);
@@ -650,6 +722,8 @@ extern enum bt_object_status bt_object_array_append(struct bt_object *array_obj,
  * @param array_obj    Array object
  * @param val          Boolean value to append
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_array_append()
  */
 extern enum bt_object_status bt_object_array_append_bool(
        struct bt_object *array_obj, bool val);
@@ -664,6 +738,8 @@ extern enum bt_object_status bt_object_array_append_bool(
  * @param array_obj    Array object
  * @param val          Integer value to append
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_array_append()
  */
 extern enum bt_object_status bt_object_array_append_integer(
        struct bt_object *array_obj, int64_t val);
@@ -679,6 +755,8 @@ extern enum bt_object_status bt_object_array_append_integer(
  * @param array_obj    Array object
  * @param val          Floating point number value to append
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_array_append()
  */
 extern enum bt_object_status bt_object_array_append_float(
        struct bt_object *array_obj, double val);
@@ -695,6 +773,8 @@ extern enum bt_object_status bt_object_array_append_float(
  * @param array_obj    Array object
  * @param val          String value to append (copied)
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_array_append()
  */
 extern enum bt_object_status bt_object_array_append_string(
        struct bt_object *array_obj, const char *val);
@@ -708,6 +788,8 @@ extern enum bt_object_status bt_object_array_append_string(
  *
  * @param array_obj    Array object
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_array_append()
  */
 extern enum bt_object_status bt_object_array_append_array(
        struct bt_object *array_obj);
@@ -721,6 +803,8 @@ extern enum bt_object_status bt_object_array_append_array(
  *
  * @param array_obj    Array object
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_array_append()
  */
 extern enum bt_object_status bt_object_array_append_map(
        struct bt_object *array_obj);
@@ -750,6 +834,8 @@ extern enum bt_object_status bt_object_array_set(struct bt_object *array_obj,
  * @returns            Map size if the return value is 0 (empty) or a
  *                     positive value, or one of
  *                     #bt_object_status negative values otherwise
+ *
+ * @see bt_object_map_is_empty()
  */
 extern int bt_object_map_size(const struct bt_object *map_obj);
 
@@ -758,6 +844,8 @@ extern int bt_object_map_size(const struct bt_object *map_obj);
  *
  * @param map_obj      Map object
  * @returns            \c true if \p map_obj is empty
+ *
+ * @see bt_object_map_size()
  */
 extern bool bt_object_map_is_empty(const struct bt_object *map_obj);
 
@@ -830,6 +918,13 @@ extern bool bt_object_map_has_key(const struct bt_object *map_obj,
  * @param element_obj  Element object to insert, associated with the
  *                     key \p key
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_map_insert_bool()
+ * @see bt_object_map_insert_integer()
+ * @see bt_object_map_insert_float()
+ * @see bt_object_map_insert_string()
+ * @see bt_object_map_insert_array()
+ * @see bt_object_map_insert_map()
  */
 extern enum bt_object_status bt_object_map_insert(
        struct bt_object *map_obj, const char *key,
@@ -849,6 +944,8 @@ extern enum bt_object_status bt_object_map_insert(
  * @param val          Boolean value to insert, associated with the
  *                     key \p key
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_map_insert()
  */
 extern enum bt_object_status bt_object_map_insert_bool(
        struct bt_object *map_obj, const char *key, bool val);
@@ -867,6 +964,8 @@ extern enum bt_object_status bt_object_map_insert_bool(
  * @param val          Integer value to insert, associated with the
  *                     key \p key
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_map_insert()
  */
 extern enum bt_object_status bt_object_map_insert_integer(
        struct bt_object *map_obj, const char *key, int64_t val);
@@ -888,6 +987,8 @@ extern enum bt_object_status bt_object_map_insert_integer(
  * @param val          Floating point number value to insert,
  *                     associated with the key \p key
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_map_insert()
  */
 extern enum bt_object_status bt_object_map_insert_float(
        struct bt_object *map_obj, const char *key, double val);
@@ -906,6 +1007,8 @@ extern enum bt_object_status bt_object_map_insert_float(
  * @param val          String value to insert, associated with the
  *                     key \p key
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_map_insert()
  */
 extern enum bt_object_status bt_object_map_insert_string(
        struct bt_object *map_obj, const char *key, const char *val);
@@ -922,6 +1025,8 @@ extern enum bt_object_status bt_object_map_insert_string(
  * @param map_obj      Map object
  * @param key          Key (copied) of empty array to insert
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_map_insert()
  */
 extern enum bt_object_status bt_object_map_insert_array(
        struct bt_object *map_obj, const char *key);
@@ -938,6 +1043,8 @@ extern enum bt_object_status bt_object_map_insert_array(
  * @param map_obj      Map object
  * @param key          Key (copied) of empty map to insert
  * @returns            One of #bt_object_status values
+ *
+ * @see bt_object_map_insert()
  */
 extern enum bt_object_status bt_object_map_insert_map(
        struct bt_object *map_obj, const char *key);
@@ -948,6 +1055,8 @@ extern enum bt_object_status bt_object_map_insert_map(
  * The created object's reference count is set to 1, unless
  * \p object is a null object.
  *
+ * Copying a frozen object is allowed: the resulting copy is not frozen.
+ *
  * @param object       Object to copy
  * @returns            Deep copy of \p object on success, or \c NULL
  *                     on error
@@ -959,7 +1068,7 @@ extern struct bt_object *bt_object_copy(const struct bt_object *object);
  * if they have the same content.
  *
  * @param object_a     Object A
- * @param object_B     Object B
+ * @param object_b     Object B
  * @returns            \c true if \p object_a and \p object_b have the
  *                     same content, or \c false if they differ or on
  *                     error
This page took 0.027627 seconds and 4 git commands to generate.