From d8520699b135ba54505a0098cf577b688c414896 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Mon, 27 May 2024 12:49:58 +0200 Subject: [PATCH] format: Allow printing test meta data to result file Signed-off-by: Steffen Vogel --- include/villas/format.hpp | 4 ++++ include/villas/formats/line.hpp | 4 ++++ lib/formats/column.cpp | 2 +- lib/formats/line.cpp | 4 ++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/include/villas/format.hpp b/include/villas/format.hpp index 31af72165..f313e2e8a 100644 --- a/include/villas/format.hpp +++ b/include/villas/format.hpp @@ -55,12 +55,16 @@ public: virtual void start() {} + virtual void reset() {} + virtual void parse(json_t *json); virtual int print(FILE *f, const struct Sample *const smps[], unsigned cnt); virtual int scan(FILE *f, struct Sample *const smps[], unsigned cnt); + virtual void printMetadata(FILE *f, json_t *json) {} + /* Print \p cnt samples from \p smps into buffer \p buf of length \p len. * * @param buf[out] The buffer which should be filled with serialized data. diff --git a/include/villas/formats/line.hpp b/include/villas/formats/line.hpp index f4b1c0aeb..eb05e13f8 100644 --- a/include/villas/formats/line.hpp +++ b/include/villas/formats/line.hpp @@ -38,6 +38,10 @@ public: header_printed = true; } + virtual void reset() { header_printed = false; } + + virtual void printMetadata(FILE *f, json_t *json); + virtual int sprint(char *buf, size_t len, size_t *wbytes, const struct Sample *const smps[], unsigned cnt); virtual int sscan(const char *buf, size_t len, size_t *rbytes, diff --git a/lib/formats/column.cpp b/lib/formats/column.cpp index f3318754f..4bf854645 100644 --- a/lib/formats/column.cpp +++ b/lib/formats/column.cpp @@ -137,7 +137,7 @@ void ColumnLineFormat::header(FILE *f, const SignalList::Ptr sigs) { return; if (comment) - fprintf(f, "%c", comment); + fprintf(f, "%c ", comment); if (flags & (int)SampleFlags::HAS_TS_ORIGIN) fprintf(f, "secs%cnsecs%c", separator, separator); diff --git a/lib/formats/line.cpp b/lib/formats/line.cpp index 07fb20115..1e15715a8 100644 --- a/lib/formats/line.cpp +++ b/lib/formats/line.cpp @@ -163,3 +163,7 @@ void LineFormat::parse(json_t *json) { Format::parse(json); } + +void LineFormat::printMetadata(FILE *f, json_t *json) { + fprintf(f, "# %s\n", json_dumps(json, 0)); +}