15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/allocator/type_profiler_control.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base {
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace type_profiler {
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(TYPE_PROFILING)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const bool kTypeProfilingEnabled = true;
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const bool kTypeProfilingEnabled = false;
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool g_enable_intercept = kTypeProfilingEnabled;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Controller::Stop() {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  g_enable_intercept = false;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool Controller::IsProfiling() {
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return kTypeProfilingEnabled && g_enable_intercept;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Controller::Restart() {
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  g_enable_intercept = kTypeProfilingEnabled;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace type_profiler
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace base
39