1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chromeos/login_event_recorder.h"
6
7#include <vector>
8
9#include "base/lazy_instance.h"
10
11namespace chromeos {
12
13static base::LazyInstance<LoginEventRecorder> g_login_event_recorder =
14    LAZY_INSTANCE_INITIALIZER;
15
16LoginEventRecorder::LoginEventRecorder() : delegate_(NULL) {
17}
18
19LoginEventRecorder::~LoginEventRecorder() {
20}
21
22// static
23LoginEventRecorder* LoginEventRecorder::Get() {
24  return g_login_event_recorder.Pointer();
25}
26
27void LoginEventRecorder::SetDelegate(LoginEventRecorder::Delegate* delegate) {
28  delegate_ = delegate;
29}
30
31void LoginEventRecorder::AddLoginTimeMarker(const std::string& marker_name,
32                                            bool send_to_uma) {
33  if (delegate_)
34    delegate_->AddLoginTimeMarker(marker_name, send_to_uma);
35}
36
37void LoginEventRecorder::RecordAuthenticationSuccess() {
38  if (delegate_)
39    delegate_->RecordAuthenticationSuccess();
40}
41
42void LoginEventRecorder::RecordAuthenticationFailure() {
43  if (delegate_)
44    delegate_->RecordAuthenticationFailure();
45}
46
47}  // namespace chromeos
48