#ifndef LTTNG_EVENT_FIELD_VALUE_H
#define LTTNG_EVENT_FIELD_VALUE_H
+#include <lttng/lttng-export.h>
#include <stdint.h>
struct lttng_event_field_value;
* `LTTNG_EVENT_FIELD_VALUE_TYPE_INVALID`:
* `field_val` is `NULL`.
*/
-extern enum lttng_event_field_value_type lttng_event_field_value_get_type(
+LTTNG_EXPORT extern enum lttng_event_field_value_type lttng_event_field_value_get_type(
const struct lttng_event_field_value *field_val);
/*
* `LTTNG_EVENT_FIELD_VALUE_TYPE_UNSIGNED_ENUM`.
* * `val` is `NULL`.
*/
-extern enum lttng_event_field_value_status
+LTTNG_EXPORT extern enum lttng_event_field_value_status
lttng_event_field_value_unsigned_int_get_value(
const struct lttng_event_field_value *field_val, uint64_t *val);
* `LTTNG_EVENT_FIELD_VALUE_TYPE_SIGNED_ENUM`.
* * `val` is `NULL`.
*/
-extern enum lttng_event_field_value_status
+LTTNG_EXPORT extern enum lttng_event_field_value_status
lttng_event_field_value_signed_int_get_value(
const struct lttng_event_field_value *field_val, int64_t *val);
* `LTTNG_EVENT_FIELD_VALUE_TYPE_REAL`.
* * `val` is `NULL`.
*/
-extern enum lttng_event_field_value_status
+LTTNG_EXPORT extern enum lttng_event_field_value_status
lttng_event_field_value_real_get_value(
const struct lttng_event_field_value *field_val, double *val);
* Returns the raw value (an UTF-8 C string) of the string event field
* value `field_val`, or `NULL` if:
*
- * * `field_val` is `NULL`.
- * * The type of `field_val` is not
- * `LTTNG_EVENT_FIELD_VALUE_TYPE_STRING`.
+ * `LTTNG_EVENT_FIELD_VALUE_STATUS_OK`:
+ * Success.
+ *
+ * `LTTNG_EVENT_FIELD_VALUE_STATUS_INVALID`:
+ * * `field_val` is `NULL`.
+ * * The type of `field_val` is not
+ * `LTTNG_EVENT_FIELD_VALUE_TYPE_STRING`.
*/
-extern const char *lttng_event_field_value_string_get_value(
- const struct lttng_event_field_value *field_val);
+LTTNG_EXPORT extern enum lttng_event_field_value_status
+lttng_event_field_value_string_get_value(
+ const struct lttng_event_field_value *field_val,
+ const char **value);
/*
* Sets `*length` to the length (the number of contained elements) of
* `LTTNG_EVENT_FIELD_VALUE_TYPE_ARRAY`.
* * `length` is `NULL`.
*/
-extern enum lttng_event_field_value_status
+LTTNG_EXPORT extern enum lttng_event_field_value_status
lttng_event_field_value_array_get_length(
const struct lttng_event_field_value *field_val,
unsigned int *length);
* * No event field value exists at index `index` within
* `field_val`.
*/
-extern enum lttng_event_field_value_status
+LTTNG_EXPORT extern enum lttng_event_field_value_status
lttng_event_field_value_array_get_element_at_index(
const struct lttng_event_field_value *field_val,
unsigned int index,