// Copyright (c) 2010 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_SERVICE_SERVICE_PROCESS_CONTROL_MANAGER_H_ #define CHROME_BROWSER_SERVICE_SERVICE_PROCESS_CONTROL_MANAGER_H_ #include <vector> class Profile; class ServiceProcessControl; // ServiceProcessControlManager is a registrar for all ServiceProcess created // in the browser process. It is also a factory for creating new // ServiceProcess. class ServiceProcessControlManager { public: typedef std::vector<ServiceProcessControl*> ServiceProcessControlList; ServiceProcessControlManager(); ~ServiceProcessControlManager(); // Get the ServiceProcess instance corresponding to |profile| and |type|. // If such an instance doesn't exist a new instance is created. // // There will be at most one ServiceProcess for a |profile|. // // This method should only be accessed on the UI thread. ServiceProcessControl* GetProcessControl(Profile* profile); // Destroy all ServiceProcess objects created. void Shutdown(); // Return the instance of ServiceProcessControlManager. static ServiceProcessControlManager* GetInstance(); private: ServiceProcessControlList process_control_list_; }; #endif // CHROME_BROWSER_SERVICE_SERVICE_PROCESS_CONTROL_MANAGER_H_