From f2b4cc5873692fc5754e7fc1da2ff73419ef939a Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 21 Mar 2016 18:52:21 -0400 Subject: [PATCH] Datafile: Added ::load_intervals --- src/Datafile.cpp | 29 +++++++++++++++++++++++++++++ src/Datafile.h | 5 +++++ 2 files changed, 34 insertions(+) diff --git a/src/Datafile.cpp b/src/Datafile.cpp index 4b678b5b..a1909cb7 100644 --- a/src/Datafile.cpp +++ b/src/Datafile.cpp @@ -115,6 +115,35 @@ std::string Datafile::dump () const return out.str (); } +//////////////////////////////////////////////////////////////////////////////// +void Datafile::load_intervals () +{ + if (! _lines_loaded) + { + load_lines (); + + // Apply previously added lines. + for (auto& line : _lines_added) + _lines.push_back (line); + } + + for (auto& line : _lines) + { + if (line[0] == 'i') + { + Interval i; + i.initialize (line); + _intervals.push_back (i); + } + else if (line[0] == 'e') + ; // TODO Exclusions. + else + ; // TODO Ignore blank lines? + } + + _intervals_loaded = true; +} + //////////////////////////////////////////////////////////////////////////////// void Datafile::load_lines () { diff --git a/src/Datafile.h b/src/Datafile.h index 54c7a806..d1e3586b 100644 --- a/src/Datafile.h +++ b/src/Datafile.h @@ -53,6 +53,7 @@ public: private: void load_lines (); + void load_intervals (); private: // File representing data. @@ -65,6 +66,10 @@ private: std::vector _lines_modified {}; bool _lines_loaded {false}; + // Intervals parsed from lines. + std::vector _intervals {}; + bool _intervals_loaded {false}; + Datetime _day1 {0}; Datetime _dayN {0}; };