Added a timer-based report to the metrics library.

Timer encapsulates a timer with basic functionality.
TimerReporter subclasses it for also sending UMA reports.

BUG=chromium-os:18800
TEST=Unit test 'timer_test' has been included

Change-Id: I9de9a2a7388721ba1476fe706a8d12788d2176ad
Reviewed-on: http://gerrit.chromium.org/gerrit/5161
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Bruno Pontes Soares Rocha <bpontes@google.com>
Reviewed-by: Bruno Pontes Soares Rocha <bpontes@google.com>
diff --git a/metrics/Makefile b/metrics/Makefile
index 2920547..072fb04 100644
--- a/metrics/Makefile
+++ b/metrics/Makefile
@@ -1,4 +1,4 @@
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 #
@@ -17,10 +17,14 @@
 SHAREDLIB = libmetrics.so
 LIB_TEST = metrics_library_test
 COUNTER_TEST = counter_test
+TIMER_TEST = timer_test
 
 TESTCOUNTER_OBJS = \
 	counter.o \
 	counter_test.o
+TESTTIMER_OBJS = \
+	timer.o \
+	timer_test.o
 CLIENT_OBJS = \
 	metrics_client.o
 DAEMON_OBJS = \
@@ -33,11 +37,13 @@
 	metrics_daemon_test.o
 LIB_OBJS = \
 	c_metrics_library.o \
-	metrics_library.o
+	metrics_library.o \
+	timer.o
 TESTLIB_OBJS = \
 	metrics_library_test.o
 
 TESTCOUNTER_LIBS = -lgmock -lgtest -lbase -lrt -lpthread -lglib-2.0
+TESTTIMER_LIBS = -lgmock -lgtest -lbase -lrt -lpthread -lglib-2.0
 DAEMON_LDFLAGS = $(LDFLAGS) $(LDCONFIG) -lrt -lbase -lpthread -lgflags \
 		 -lglib-2.0 -lrootdev -lpolicy
 TESTDAEMON_LIBS = -lgmock -lgtest
@@ -46,7 +52,7 @@
 
 all: $(LIB) $(SHAREDLIB) $(CLIENT) $(DAEMON)
 
-tests: $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST)
+tests: $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST) $(TIMER_TEST)
 
 $(CLIENT): $(CLIENT_OBJS) $(SHAREDLIB)
 	$(CXX) $(LDFLAGS) $(POLICY_LIBS) -lrt $^ -o $@
@@ -54,6 +60,9 @@
 $(COUNTER_TEST): $(TESTCOUNTER_OBJS)
 	$(CXX) -o $@ $^ $(TESTCOUNTER_LIBS)
 
+$(TIMER_TEST): $(TESTTIMER_OBJS)
+	$(CXX) -o $@ $^ $(TESTTIMER_LIBS)
+
 $(DAEMON): $(DAEMON_OBJS) $(SHAREDLIB)
 	$(CXX) -o $@ $^ $(DAEMON_LDFLAGS)
 
@@ -74,4 +83,4 @@
 
 clean:
 	rm -f $(CLIENT) $(DAEMON) $(LIB) $(SHAREDLIB) *.o
-	rm -f $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST)
+	rm -f $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST) $(TIMER_TEST)