Index: chromeos/login_event_recorder.h |
diff --git a/chromeos/login_event_recorder.h b/chromeos/login_event_recorder.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d2adbb2d5246d7e298c93048150569d3eb40177e |
--- /dev/null |
+++ b/chromeos/login_event_recorder.h |
@@ -0,0 +1,45 @@ |
+// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROMEOS_LOGIN_EVENT_RECORDER_H_ |
+#define CHROMEOS_LOGIN_EVENT_RECORDER_H_ |
+ |
+#include <string> |
+ |
+#include "base/macros.h" |
+#include "chromeos/chromeos_export.h" |
+ |
+namespace chromeos { |
+ |
+// LoginEventRecorder records the bootimes of Chrome OS. |
+// Actual implementation is handled by delegate. |
+class CHROMEOS_EXPORT LoginEventRecorder { |
+ public: |
+ class Delegate { |
+ public: |
+ virtual void AddLoginTimeMarker(const std::string& marker_name, |
+ bool send_to_uma) = 0; |
+ }; |
+ LoginEventRecorder(); |
+ virtual ~LoginEventRecorder(); |
+ |
+ static LoginEventRecorder* Get(); |
+ |
+ void SetDelegate(Delegate* delegate); |
+ |
+ // Add a time marker for login. A timeline will be dumped to |
+ // /tmp/login-times-sent after login is done. If |send_to_uma| is true |
+ // the time between this marker and the last will be sent to UMA with |
+ // the identifier BootTime.|marker_name|. |
+ void AddLoginTimeMarker(const std::string& marker_name, bool send_to_uma); |
+ |
+ private: |
+ Delegate* delegate_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(LoginEventRecorder); |
+}; |
+ |
+} // namespace chromeos |
+ |
+#endif // CHROMEOS_LOGIN_EVENT_RECORDER_H_ |