<commit_before>// Copyright (c) 2006-2008 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.

// This class encapsulates the implementation of multiple profiles by using
// the user-data-dir functionality.

#ifndef CHROME_BROWSER_USER_DATA_MANAGER_H_
#define CHROME_BROWSER_USER_DATA_MANAGER_H_

#include <string>
#include <vector>

#include "base/basictypes.h"
#include "base/ref_counted.h"

class CommandLine;
class MessageLoop;

// Provides an abstraction of profiles on top of the user data directory
// feature. Given the root of the user data directories, it provides
// functionality to enumerate the existing profiles and start Chrome in a
// given profile.
// Also holds a shared instance of its own for convenience though it's not a
// singleton class. The shared instance should be created by the main thread,
// then other threads can access and use the shared instance.
class UserDataManager {
 public:
  // Creates the shared instance of this class. This method is not thread-safe,
  // so the shared instance should be created on the main thread.
  static UserDataManager* Create();

  // Returns the shared instance. CreateInstance must be called before callling
  // this method.
  static UserDataManager* Get();

  // Creates a new instance with the given root folder for storing user data<commit_msg>Remove a forward declaration that is not being used. Review URL: http://codereview.chromium.org/20528<commit_after>// Copyright (c) 2006-2008 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.

// This class encapsulates the implementation of multiple profiles by using
// the user-data-dir functionality.

#ifndef CHROME_BROWSER_USER_DATA_MANAGER_H_
#define CHROME_BROWSER_USER_DATA_MANAGER_H_

#include <string>
#include <vector>

#include "base/basictypes.h"
#include "base/ref_counted.h"

class MessageLoop;

// Provides an abstraction of profiles on top of the user data directory
// feature. Given the root of the user data directories, it provides
// functionality to enumerate the existing profiles and start Chrome in a
// given profile.
// Also holds a shared instance of its own for convenience though it's not a
// singleton class. The shared instance should be created by the main thread,
// then other threads can access and use the shared instance.
class UserDataManager {
 public:
  // Creates the shared instance of this class. This method is not thread-safe,
  // so the shared instance should be created on the main thread.
  static UserDataManager* Create();

  // Returns the shared instance. CreateInstance must be called before callling
  // this method.
  static UserDataManager* Get();

  // Creates a new instance with the given root folder for storing user data
{'fraction_non_alphanumeric': 0.06450500172473267, 'fraction_numerical': 0.0072438771990341495, 'mean_word_length': 4.017301038062284, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3932698', 'n_tokens_mistral': 789, 'n_tokens_neox': 741, 'n_words': 382}