Add schema information to XML MI output
[lttng-tools.git] / src / common / config / session-config.c
index ba938d9f1578863b9253c28d61bbe7bd29b4ff08..dec891349a5384a928abf153447452b51131498c 100644 (file)
@@ -109,6 +109,7 @@ const char * const config_element_snapshot_mode = "snapshot_mode";
 const char * const config_element_loglevel = "loglevel";
 const char * const config_element_loglevel_type = "loglevel_type";
 const char * const config_element_filter = "filter";
+const char * const config_element_filter_expression = "filter_expression";
 const char * const config_element_snapshot_outputs = "snapshot_outputs";
 const char * const config_element_consumer_output = "consumer_output";
 const char * const config_element_destination = "destination";
@@ -454,7 +455,40 @@ int config_writer_open_element(struct config_writer *writer,
        ret = xmlTextWriterStartElement(writer->writer, encoded_element_name);
        xmlFree(encoded_element_name);
 end:
-       return ret > 0 ? 0 : ret;
+       return ret >= 0 ? 0 : ret;
+}
+
+LTTNG_HIDDEN
+int config_writer_write_attribute(struct config_writer *writer,
+               const char *name, const char *value)
+{
+       int ret;
+       xmlChar *encoded_name = NULL;
+       xmlChar *encoded_value = NULL;
+
+       if (!writer || !writer->writer || !name || !name[0]) {
+               ret = -1;
+               goto end;
+       }
+
+       encoded_name = encode_string(name);
+       if (!encoded_name) {
+               ret = -1;
+               goto end;
+       }
+
+       encoded_value = encode_string(value);
+       if (!encoded_value) {
+               ret = -1;
+               goto end;
+       }
+
+       ret = xmlTextWriterWriteAttribute(writer->writer, encoded_name,
+                       encoded_value);
+end:
+       xmlFree(encoded_name);
+       xmlFree(encoded_value);
+       return ret >= 0 ? 0 : ret;
 }
 
 LTTNG_HIDDEN
@@ -469,7 +503,7 @@ int config_writer_close_element(struct config_writer *writer)
 
        ret = xmlTextWriterEndElement(writer->writer);
 end:
-       return ret > 0 ? 0 : ret;
+       return ret >= 0 ? 0 : ret;
 }
 
 LTTNG_HIDDEN
@@ -494,7 +528,7 @@ int config_writer_write_element_unsigned_int(struct config_writer *writer,
                encoded_element_name, "%" PRIu64, value);
        xmlFree(encoded_element_name);
 end:
-       return ret > 0 ? 0 : ret;
+       return ret >= 0 ? 0 : ret;
 }
 
 LTTNG_HIDDEN
@@ -519,7 +553,7 @@ int config_writer_write_element_signed_int(struct config_writer *writer,
                encoded_element_name, "%" PRIi64, value);
        xmlFree(encoded_element_name);
 end:
-       return ret > 0 ? 0 : ret;
+       return ret >= 0 ? 0 : ret;
 }
 
 LTTNG_HIDDEN
@@ -561,7 +595,7 @@ int config_writer_write_element_string(struct config_writer *writer,
 end:
        xmlFree(encoded_element_name);
        xmlFree(encoded_value);
-       return ret > 0 ? 0 : ret;
+       return ret >= 0 ? 0 : ret;
 }
 
 static
This page took 0.034283 seconds and 4 git commands to generate.