diff options
Diffstat (limited to 'chrome/browser/service/service_process_control_manager.h')
-rw-r--r-- | chrome/browser/service/service_process_control_manager.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/chrome/browser/service/service_process_control_manager.h b/chrome/browser/service/service_process_control_manager.h new file mode 100644 index 0000000..c57f65c --- /dev/null +++ b/chrome/browser/service/service_process_control_manager.h @@ -0,0 +1,45 @@ +// 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> + +#include "chrome/common/service_process_type.h" + +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| and |type| + // pair. + // + // This method should only be accessed on the UI thread. + ServiceProcessControl* GetProcessControl(Profile* profile, + ServiceProcessType type); + + // Destroy all ServiceProcess objects created. + void Shutdown(); + + // Return the instance of ServiceProcessControlManager. + static ServiceProcessControlManager* instance(); + + private: + ServiceProcessControlList process_control_list_; +}; + +#endif // CHROME_BROWSER_SERVICE_SERVICE_PROCESS_CONTROL_MANAGER_H_ |