shill: cellular: Track auto-connect metrics.
Network.Shill.Cellular.AutoConnectTries and
Network.Shill.Cellular.AutoConnectTotalTime.
BUG=chromium-os:38406
TEST=Connect modem via auto-connect and check chrome://histograms
Change-Id: I79c2db2b8f4897779275675c9c0fb6278298d462
Reviewed-on: https://gerrit.chromium.org/gerrit/42361
Commit-Queue: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
diff --git a/cellular_service.h b/cellular_service.h
index 8af31e1..e665e56 100644
--- a/cellular_service.h
+++ b/cellular_service.h
@@ -61,6 +61,7 @@
virtual ~CellularService();
// Inherited from Service.
+ virtual void AutoConnect();
virtual void Connect(Error *error);
virtual void Disconnect(Error *error);
virtual void ActivateCellularModem(const std::string &carrier,
@@ -95,6 +96,10 @@
void SetRoamingState(const std::string &state);
const std::string &roaming_state() const { return roaming_state_; }
+ bool is_auto_connecting() const {
+ return is_auto_connecting_;
+ }
+
// Overrides Load and Save from parent Service class. We will call
// the parent method.
virtual bool Load(StoreInterface *storage);
@@ -168,6 +173,12 @@
CellularRefPtr cellular_;
+ // Flag indicating that a connect request is an auto-connect request.
+ // Note: Since Connect() is asynchronous, this flag is only set during the
+ // call to Connect(). It does not remain set while the async request is
+ // in flight.
+ bool is_auto_connecting_;
+
DISALLOW_COPY_AND_ASSIGN(CellularService);
};