From 52d0fe67f8998b215a47ebc697600cae49a7b17a Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 22 Mar 2015 18:20:38 +0100 Subject: o Better class names for options. --- apps/sample-convert.cpp | 4 +-- sensor/include/trygvis/sensor/io.h | 58 ++++++++++++++++++-------------------- sensor/main/io.cpp | 11 +++++--- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/apps/sample-convert.cpp b/apps/sample-convert.cpp index 0c3aa9a..c7173a1 100644 --- a/apps/sample-convert.cpp +++ b/apps/sample-convert.cpp @@ -68,14 +68,14 @@ public: } std::vector options; - trygvis::sensor::io::timestamp_field tf(timestamp_field); + trygvis::sensor::io::timestamp_field_option tf(timestamp_field); if (!timestamp_field.empty()) { options.push_back(&tf); } tokenizer<> tok(fields); - output_fields fs; + output_fields_option fs; std::copy(tok.begin(), tok.end(), std::back_inserter(fs.fields)); if (!fs.fields.empty()) { options.push_back(&fs); diff --git a/sensor/include/trygvis/sensor/io.h b/sensor/include/trygvis/sensor/io.h index 2cace70..bbeb80e 100644 --- a/sensor/include/trygvis/sensor/io.h +++ b/sensor/include/trygvis/sensor/io.h @@ -12,9 +12,30 @@ namespace io { using namespace std; using namespace boost::asio; -class output_fields; +class sample_output_stream_option { +public: + virtual ~sample_output_stream_option() { + }; +}; + +class output_fields_option : public sample_output_stream_option { +public: + ~output_fields_option() { + } + + vector fields; +}; + +class timestamp_field_option : public sample_output_stream_option { +public: + timestamp_field_option(string name) : name(name) { + } + + ~timestamp_field_option() { + } -class timestamp_field; + string name; +}; class SampleOutputStream { public: @@ -86,7 +107,7 @@ private: class RrdSampleOutputStream : public SampleOutputStream { public: - RrdSampleOutputStream(shared_ptr stream, KeyDictionary &dict, const SampleKey *timestamp_key, o output_fields); + RrdSampleOutputStream(shared_ptr stream, KeyDictionary &dict, const SampleKey *timestamp_key, o output_fields); void write(SampleRecord const &sample) override; @@ -154,31 +175,6 @@ public: virtual void process(mutable_buffers_1 buffer); }; -class sample_output_stream_option { -public: - virtual ~sample_output_stream_option() { - }; -}; - -class output_fields : public sample_output_stream_option { -public: - ~output_fields() { - } - - vector fields; -}; - -class timestamp_field : public sample_output_stream_option { -public: - timestamp_field(string name) : name(name) { - } - - ~timestamp_field() { - } - - string name; -}; - unique_ptr open_sample_stream_parser( shared_ptr output, KeyDictionary &dict, @@ -188,14 +184,15 @@ unique_ptr open_sample_output_stream( shared_ptr output, KeyDictionary &dict, sample_format_type type, -vector options); + vector options); static inline unique_ptr open_sample_output_stream( shared_ptr output, KeyDictionary &dict, sample_format_type type) { -return open_sample_output_stream(output, dict, type); + vector options; + return open_sample_output_stream(output, dict, type, options); } static inline @@ -203,7 +200,6 @@ unique_ptr thread_safe_sample_output_stream(unique return make_unique(move(underlying)); }; - } } } diff --git a/sensor/main/io.cpp b/sensor/main/io.cpp index 4837414..57c0b18 100644 --- a/sensor/main/io.cpp +++ b/sensor/main/io.cpp @@ -186,9 +186,12 @@ void KeyValueSampleOutputStream::write(SampleRecord const &sample) { *stream.get() << endl; } -RrdSampleOutputStream::RrdSampleOutputStream(shared_ptr stream, KeyDictionary &dict, const SampleKey *timestamp_key, o output_fields) - : +RrdSampleOutputStream::RrdSampleOutputStream(shared_ptr stream, + KeyDictionary &dict, + const SampleKey *timestamp_key, + o output_fields) : stream(move(stream)), timestamp_key(timestamp_key) { + if (output_fields) { for (auto field : output_fields.get()->fields) { keys.emplace_back(dict.indexOf(field)); @@ -399,9 +402,9 @@ unique_ptr open_sample_output_stream( } else if (type == sample_format_type::JSON) { return make_unique(output, dict); } else if (type == sample_format_type::RRD) { - o of = find_option(options); + o of = find_option(options); - o tsf = find_option(options); + o tsf = find_option(options); auto timestamp_key = dict.indexOf(tsf ? tsf.get()->name : "timestamp"); -- cgit v1.2.3