return 0;
}
+int td_metrics_push_uint64_from_json(td_metrics* self, const char* field,
+ sd_json_variant* json, const char* key) {
+ sd_json_variant* value = NULL;
+
+ // Fetch the value
+ value = sd_json_variant_by_key(json, key);
+ if (!value) {
+ DEBUG(self->ctx, "Could not find key '%s' in JSON object\n", key);
+ return -EBADMSG;
+ }
+
+ // Push the value
+ return td_metrics_push_uint64(self, field, sd_json_variant_unsigned(value));
+}
+
int __td_metrics_serialize(td_metrics* self, char* buffer, size_t length) {
td_metric* metric = NULL;
ssize_t bytes_written = 0;
#define VALUE_UINT64(field, value) VALUE(field, TD_METRIC_UINT64, value)
#define VALUE_FLOAT(field, value) VALUE(field, TD_METRIC_FLOAT, value)
+#include <systemd/sd-json.h>
+
#include "ctx.h"
#include "source.h"
int td_metrics_set(td_metrics* self, const td_metric_value* values);
+int td_metrics_push_uint64_from_json(td_metrics* self, const char* field,
+ sd_json_variant* json, const char* key);
+
#define td_metrics_serialize(metrics, buffer) \
__td_metrics_serialize(metrics, buffer, sizeof(buffer))