return ret;
}
+int bt_ctf_field_string_append(struct bt_ctf_field *field,
+ const char *value)
+{
+ int ret = 0;
+ struct bt_ctf_field_string *string_field;
+
+ if (!field || !value ||
+ bt_ctf_field_type_get_type_id(field->type) !=
+ CTF_TYPE_STRING) {
+ ret = -1;
+ goto end;
+ }
+
+ string_field = container_of(field, struct bt_ctf_field_string, parent);
+
+ if (string_field->payload) {
+ g_string_append(string_field->payload, value);
+ } else {
+ string_field->payload = g_string_new(value);
+ }
+
+ string_field->parent.payload_set = 1;
+
+end:
+ return ret;
+}
+
BT_HIDDEN
int bt_ctf_field_validate(struct bt_ctf_field *field)
{
extern int bt_ctf_field_string_set_value(struct bt_ctf_field *string_field,
const char *value);
+/*
+ * bt_ctf_field_string_append: append a string to a string field's
+ * current value.
+ *
+ * Append a string to the current value of a string field. If the string
+ * field was never set using bt_ctf_field_string_set_value(), it is
+ * first set to an empty string, and then the concatenation happens.
+ *
+ * @param string_field String field instance.
+ * @param value String to append to the current string field's value.
+ *
+ * Returns 0 on success, a negative value on error.
+ */
+extern int bt_ctf_field_string_append(struct bt_ctf_field *string_field,
+ const char *value);
+
/*
* bt_ctf_field_get_type: get a field's type
*