diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-12 01:07:24 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-12 01:07:24 +0000 |
commit | 50307586363272bb8b133004889772b4919ad8fd (patch) | |
tree | a7e73d040cbd3d846e60570abd68c731f85b3e48 /chrome/browser/service/service_process_control_manager.h | |
parent | 7e8a83c5f13b6ed0c5be202f5697efc07cee06ce (diff) | |
download | chromium_src-50307586363272bb8b133004889772b4919ad8fd.zip chromium_src-50307586363272bb8b133004889772b4919ad8fd.tar.gz chromium_src-50307586363272bb8b133004889772b4919ad8fd.tar.bz2 |
ServiceProcessControl to launch a service process and communicate through IPC.
Added two class for use with service process:
ServiceProcessControl
Used by the browser to launch and connect to the service process, also used
to receive messages from the service process.
ServiceProcessControlManager
A singleton to manage multiple ServicProcessControl.
BUG=50244
TEST=browser_tests --gtest_filter=ServiceProcess*
Review URL: http://codereview.chromium.org/3032061
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55826 0039d316-1c4b-4281-b951-d872f2087c98
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_ |