diff options
Diffstat (limited to 'sensor')
-rw-r--r-- | sensor/include/trygvis/sensor.h | 9 | ||||
-rw-r--r-- | sensor/main/sensor.cpp | 24 |
2 files changed, 33 insertions, 0 deletions
diff --git a/sensor/include/trygvis/sensor.h b/sensor/include/trygvis/sensor.h index f8cfbe5..bcbd43b 100644 --- a/sensor/include/trygvis/sensor.h +++ b/sensor/include/trygvis/sensor.h @@ -29,6 +29,15 @@ std::ostream& operator<<(std::ostream& os, sample_format_type const& type); std::istream& operator>>(std::istream& is, sample_format_type& type); +enum class time_resolution { + SECONDS, + MILLISECONDS, +}; + +std::ostream& operator<<(std::ostream& os, time_resolution const& type); + +std::istream& operator>>(std::istream& is, time_resolution & type); + class sample_exception : public runtime_error { public: sample_exception(const string &what) : runtime_error(what) { diff --git a/sensor/main/sensor.cpp b/sensor/main/sensor.cpp index a773e0b..be3d31e 100644 --- a/sensor/main/sensor.cpp +++ b/sensor/main/sensor.cpp @@ -53,6 +53,30 @@ std::istream& operator>>(std::istream& is, sample_format_type& type) { return is; } +std::ostream& operator<<(std::ostream& os, time_resolution const& type) { + if (type == time_resolution::SECONDS) { + os << "seconds"; + } else if(type == time_resolution::MILLISECONDS) { + os << "milliseconds"; + } + + return os; +} + +std::istream& operator>>(std::istream& is, time_resolution & type) { + string s; + + is >> s; + + if(s == "seconds") { + type = time_resolution::SECONDS; + } else if(s == "milliseconds") { + type = time_resolution::MILLISECONDS; + } + + return is; +} + template<> const o<long> SampleRecord::lexical_at(const SampleKey *key) const { auto value = at(key); |