shill: LinkMonitor: Add Metrics

BUG=chromium-os:32600
TEST=Unit tests

Change-Id: I4a7625fb006e939a5ea63efeede8ca9982115332
Reviewed-on: https://gerrit.chromium.org/gerrit/29421
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
diff --git a/link_monitor.h b/link_monitor.h
index 9a3276b..a3e0a79 100644
--- a/link_monitor.h
+++ b/link_monitor.h
@@ -20,6 +20,7 @@
 class DeviceInfo;
 class EventDispatcher;
 class IOHandler;
+class Metrics;
 class Time;
 
 // LinkMonitor tracks the status of a connection by sending ARP
@@ -31,8 +32,12 @@
  public:
   typedef base::Closure FailureCallback;
 
+  // The number of milliseconds between ARP requests.  Needed by Metrics.
+  static const unsigned int kTestPeriodMilliseconds;
+
   LinkMonitor(const ConnectionRefPtr &connection,
               EventDispatcher *dispatcher,
+              Metrics *metrics,
               DeviceInfo *device_info,
               const FailureCallback &failure_callback);
   virtual ~LinkMonitor();
@@ -52,9 +57,6 @@
   friend class LinkMonitorForTest;
   friend class LinkMonitorTest;
 
-  // The number of milliseconds between ARP requests.
-  static const unsigned int kTestPeriodMilliseconds;
-
   // When the sum of consecutive unicast and broadcast failures
   // equals this value, the failure callback is called, the counters
   // are reset, and the link monitoring quiesces.
@@ -87,6 +89,7 @@
 
   ConnectionRefPtr connection_;
   EventDispatcher *dispatcher_;
+  Metrics *metrics_;
   DeviceInfo *device_info_;
   FailureCallback failure_callback_;
   ByteString local_mac_address_;