Home | History | Annotate | Download | only in common
      1 // Copyright (c) 2013 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 "components/policy/core/common/policy_load_status.h"
      6 
      7 #include "base/metrics/histogram.h"
      8 #include "base/strings/stringprintf.h"
      9 #include "components/policy/core/common/policy_types.h"
     10 
     11 namespace policy {
     12 
     13 namespace {
     14 
     15 const char kHistogramName[] = "Enterprise.PolicyLoadStatus";
     16 
     17 }  // namespace
     18 
     19 PolicyLoadStatusSample::PolicyLoadStatusSample()
     20     : histogram_(base::LinearHistogram::FactoryGet(
     21           kHistogramName, 1, POLICY_LOAD_STATUS_SIZE,
     22           POLICY_LOAD_STATUS_SIZE + 1,
     23           base::Histogram::kUmaTargetedHistogramFlag)) {
     24   Add(POLICY_LOAD_STATUS_STARTED);
     25 }
     26 
     27 PolicyLoadStatusSample::~PolicyLoadStatusSample() {
     28   for (int i = 0; i < POLICY_LOAD_STATUS_SIZE; ++i) {
     29     if (status_bits_[i])
     30       histogram_->Add(i);
     31   }
     32 }
     33 
     34 void PolicyLoadStatusSample::Add(PolicyLoadStatus status) {
     35   status_bits_[status] = true;
     36 }
     37 
     38 }  // namespace policy
     39