struct bt_ctf_stream_class;
struct bt_ctf_clock;
+enum bt_environment_field_type {
+ BT_ENVIRONMENT_FIELD_TYPE_UNKNOWN = -1,
+ BT_ENVIRONMENT_FIELD_TYPE_STRING = 0,
+ BT_ENVIRONMENT_FIELD_TYPE_INTEGER = 1,
+};
+
/*
* bt_ctf_trace_create: create a trace instance.
*
struct bt_ctf_stream_class *stream_class);
/*
- * bt_ctf_trace_add_environment_field: add an environment field to the trace.
+ * bt_ctf_trace_add_environment_field: add a string environment field to the
+ * trace.
*
- * Add an environment field to the trace. The name and value parameters are
- * copied.
+ * Add a string environment field to the trace. The name and value parameters
+ * are copied.
*
* @param trace Trace instance.
* @param name Name of the environment field (will be copied).
const char *name,
const char *value);
+/*
+ * bt_ctf_trace_add_environment_field_integer: add an integer environment
+ * field to the trace.
+ *
+ * Add an integer environment field to the trace. The name parameter is
+ * copied.
+ *
+ * @param trace Trace instance.
+ * @param name Name of the environment field (will be copied).
+ * @param value Value of the environment field.
+ *
+ * Returns 0 on success, a negative value on error.
+ */
+extern int bt_ctf_trace_add_environment_field_integer(
+ struct bt_ctf_trace *trace, const char *name,
+ int64_t value);
+
+/*
+ * bt_ctf_trace_get_environment_field_count: get environment field count.
+ *
+ * Get the trace's environment field count.
+ *
+ * @param trace Trace instance.
+ *
+ * Returns the environment field count, a negative value on error.
+ */
+extern int bt_ctf_trace_get_environment_field_count(
+ struct bt_ctf_trace *trace);
+
+/*
+ * bt_ctf_trace_get_environment_field_type: get environment field type.
+ *
+ * Get an environment field's type.
+ *
+ * @param trace Trace instance.
+ * @param index Index of the environment field.
+ *
+ * Returns the environment field count, a negative value on error.
+ */
+extern enum bt_environment_field_type
+bt_ctf_trace_get_environment_field_type(struct bt_ctf_trace *trace,
+ int index);
+
+/*
+ * bt_ctf_trace_get_environment_field_name: get environment field name.
+ *
+ * Get an environment field's name. The string's ownership is not
+ * transferred to the caller.
+ *
+ * @param trace Trace instance.
+ * @param index Index of the environment field.
+ *
+ * Returns the environment field's name, NULL on error.
+ */
+extern const char *
+bt_ctf_trace_get_environment_field_name(struct bt_ctf_trace *trace,
+ int index);
+
+/*
+ * bt_ctf_trace_get_environment_field_value_string: get environment field
+ * string value.
+ *
+ * Get an environment field's string value. The string's ownership is not
+ * transferred to the caller.
+ *
+ * @param trace Trace instance.
+ * @param index Index of the environment field.
+ *
+ * Returns the environment field's string value, NULL on error.
+ */
+extern const char *
+bt_ctf_trace_get_environment_field_value_string(struct bt_ctf_trace *trace,
+ int index);
+
+/*
+ * bt_ctf_trace_get_environment_field_value_integer: get environment field
+ * integer value.
+ *
+ * Get an environment field's integer value.
+ *
+ * @param trace Trace instance.
+ * @param index Index of the environment field.
+ *
+ * Returns the environment field's integer value, a negative value on error.
+ */
+extern int
+bt_ctf_trace_get_environment_field_value_integer(struct bt_ctf_trace *trace,
+ int index, int64_t *value);
+
/*
* bt_ctf_trace_add_clock: add a clock to the trace.
*
/*
* bt_ctf_trace_set_byte_order: set a field type's byte order.
*
- * Set the trace's byte order. Defaults to BT_CTF_BYTE_ORDER_NATIVE,
- * the host machine's endianness.
+ * Set the trace's byte order. Defaults to the current host's endianness.
*
* @param trace Trace instance.
* @param byte_order Trace's byte order.
*
* Returns 0 on success, a negative value on error.
+ *
+ * Note: byte_order must not be BT_CTF_BYTE_ORDER_NATIVE since, according
+ * to the CTF specification, is defined as "the byte order described in the
+ * trace description".
*/
extern int bt_ctf_trace_set_byte_order(struct bt_ctf_trace *trace,
enum bt_ctf_byte_order byte_order);