- break;
- case LTTNG_ID_STRING:
- ret = mi_lttng_writer_open_element(writer, element_target_id);
- if (ret) {
- goto end;
- }
- ret = mi_lttng_writer_open_element(writer, config_element_type);
- if (ret) {
- goto end;
- }
- ret = mi_lttng_writer_write_element_string(
- writer, config_element_name, id->string);
- if (ret) {
- goto end;
- }
+ }
+end:
+ return ret;
+}
+
+LTTNG_HIDDEN
+int mi_lttng_integral_process_attribute_value(struct mi_writer *writer,
+ enum lttng_process_attr process_attr,
+ int64_t value,
+ bool is_open)
+{
+ int ret;
+ const char *element_id_tracker, *element_target_id;
+
+ ret = get_tracker_elements(
+ process_attr, &element_id_tracker, &element_target_id);
+ if (ret) {
+ return ret;
+ }
+
+ ret = mi_lttng_writer_open_element(writer, element_target_id);
+ if (ret) {
+ goto end;
+ }
+
+ ret = mi_lttng_writer_open_element(writer, config_element_type);
+ if (ret) {
+ goto end;
+ }
+
+ ret = mi_lttng_writer_write_element_signed_int(
+ writer, config_element_process_attr_id, value);
+ if (ret) {
+ goto end;
+ }
+
+ ret = mi_lttng_writer_close_element(writer);
+ if (ret) {
+ goto end;
+ }
+
+ if (!is_open) {