// Copyright (c) 2012 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 CHROME_BROWSER_TASK_PROFILER_AUTO_TRACKING_H_
#define CHROME_BROWSER_TASK_PROFILER_AUTO_TRACKING_H_
#include "base/files/file_path.h"
#include "base/tracked_objects.h"
//------------------------------------------------------------------------------
// Provide simple way to to start global tracking, and to tear down tracking
// when done. The design has evolved to *not* do any teardown (and just leak
// all allocated data structures). This class is currently used to ensure
// that the profiler data is output during shutdown, if this feature has been
// requested.
namespace task_profiler {
class AutoTracking {
public:
AutoTracking() {
tracked_objects::ThreadData::Initialize();
}
~AutoTracking();
void set_output_file_path(const base::FilePath &path);
private:
base::FilePath output_file_path_;
DISALLOW_COPY_AND_ASSIGN(AutoTracking);
};
} // namespace task_profiler
#endif // CHROME_BROWSER_TASK_PROFILER_AUTO_TRACKING_H_