diff options
Diffstat (limited to 'apps/sm-serial-read.cpp')
-rw-r--r-- | apps/sm-serial-read.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/apps/sm-serial-read.cpp b/apps/sm-serial-read.cpp index fee1a8c..04a718d 100644 --- a/apps/sm-serial-read.cpp +++ b/apps/sm-serial-read.cpp @@ -59,7 +59,7 @@ string hostname = get_hostname(); class port_handler { public: - port_handler(string device, serial_port &serial_port, shared_ptr<CsvParser> input) : + port_handler(string device, serial_port &serial_port, shared_ptr<CsvSampleParser> input) : device(device), port(serial_port), input(input) { } @@ -84,7 +84,7 @@ private: uint8_t data[size]; mutable_buffers_1 buffer = boost::asio::buffer(data, size); - shared_ptr<CsvParser> input; + shared_ptr<CsvSampleParser> input; }; class sm_serial_read : public app { @@ -120,20 +120,21 @@ public: cerr << "port is not open" << endl; } - shared_ptr <SampleOutputStream> output; + shared_ptr<SampleOutputStream> output; + unique_ptr<ostream> outputStream = unique_ptr<ostream>(&cout); if (format == Format::JSON) { - output = make_shared<JsonSampleOutputStream>(cout); + output = make_shared<JsonSampleOutputStream>(std::move(outputStream)); } else if (format == Format::SQL) { - output = make_shared<SqlSampleOutputStream>(cout, "raw"); + output = make_shared<SqlSampleOutputStream>(std::move(outputStream), "raw"); } else if (format == Format::PLAIN) { - output = make_shared<CsvSampleOutputStream>(cout); + output = make_shared<CsvSampleOutputStream>(std::move(outputStream)); } else { cerr << "Unsupported format: " << boost::lexical_cast<string>(format) << endl; return EXIT_FAILURE; } - shared_ptr <CsvParser> input = make_shared<CsvParser>(output); + shared_ptr<CsvSampleParser> input = make_shared<CsvSampleParser>(output); port_handler(port_name, port, input).run(); |