update_engine: Add minutes variable to real time provider.
Make it so that the user can also get the current
minutes in local time from the real time provider.
BUG=chromium:852860
TEST=Real time provider unittests
Change-Id: I8118e28c5ab7f000434947fdee9aeae441535ba6
Reviewed-on: https://chromium-review.googlesource.com/1101468
Commit-Ready: Adolfo Higueros <adokar@google.com>
Tested-by: Adolfo Higueros <adokar@google.com>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
diff --git a/update_manager/real_time_provider.cc b/update_manager/real_time_provider.cc
index ca3acad..92f985f 100644
--- a/update_manager/real_time_provider.cc
+++ b/update_manager/real_time_provider.cc
@@ -74,9 +74,28 @@
DISALLOW_COPY_AND_ASSIGN(CurrHourVariable);
};
+class CurrMinuteVariable : public Variable<int> {
+ public:
+ CurrMinuteVariable(const string& name, ClockInterface* clock)
+ : Variable<int>(name, TimeDelta::FromSeconds(15)), clock_(clock) {}
+
+ protected:
+ virtual const int* GetValue(TimeDelta /* timeout */, string* /* errmsg */) {
+ Time::Exploded exploded;
+ clock_->GetWallclockTime().LocalExplode(&exploded);
+ return new int(exploded.minute);
+ }
+
+ private:
+ ClockInterface* clock_;
+
+ DISALLOW_COPY_AND_ASSIGN(CurrMinuteVariable);
+};
+
bool RealTimeProvider::Init() {
var_curr_date_.reset(new CurrDateVariable("curr_date", clock_));
var_curr_hour_.reset(new CurrHourVariable("curr_hour", clock_));
+ var_curr_minute_.reset(new CurrMinuteVariable("curr_minute", clock_));
return true;
}