chromium/components/spellcheck/browser/spellcheck_host_metrics.h

// Copyright 2011 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_SPELLCHECK_BROWSER_SPELLCHECK_HOST_METRICS_H_
#define COMPONENTS_SPELLCHECK_BROWSER_SPELLCHECK_HOST_METRICS_H_

#include <stddef.h>

#include <string>
#include <unordered_set>

#include "base/time/time.h"
#include "base/timer/timer.h"
#include "build/build_config.h"

#if BUILDFLAG(IS_WIN)
// Simple struct to keep track of how many languages are supported by which
// spell checker.
struct LocalesSupportInfo {
  size_t locales_supported_by_hunspell_and_native;
  size_t locales_supported_by_hunspell_only;
  size_t locales_supported_by_native_only;
  size_t unsupported_locales;
};
#endif  // BUILDFLAG(IS_WIN)

// A helper object for recording spell-check related histograms.
// This class encapsulates histogram names and metrics API.
// This also carries a set of counters for collecting histograms
// and a timer for making a periodical summary.
//
// We expect a user of SpellCheckHost class to instantiate this object,
// and pass the metrics object to SpellCheckHost's factory method.
//
//   metrics.reset(new SpellCheckHostMetrics());
//   spell_check_host = SpellChecHost::Create(...., metrics.get());
//
// The lifetime of the object should be managed by a caller,
// and the lifetime should be longer than SpellCheckHost instance
// because SpellCheckHost will use the object.
class SpellCheckHostMetrics {};

#endif  // COMPONENTS_SPELLCHECK_BROWSER_SPELLCHECK_HOST_METRICS_H_