Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(361)

Side by Side Diff: mojo/shell/view_manager_loader.h

Issue 380413003: Mojo: Use InterfaceFactory<Interface> for service registration (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: specify ownership in the Bind call Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MOJO_SHELL_VIEW_MANAGER_LOADER_H_ 5 #ifndef MOJO_SHELL_VIEW_MANAGER_LOADER_H_
6 #define MOJO_SHELL_VIEW_MANAGER_LOADER_H_ 6 #define MOJO_SHELL_VIEW_MANAGER_LOADER_H_
7 7
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "mojo/public/cpp/application/application_delegate.h" 10 #include "mojo/public/cpp/application/application_delegate.h"
11 #include "mojo/public/cpp/application/interface_provider.h"
11 #include "mojo/service_manager/service_loader.h" 12 #include "mojo/service_manager/service_loader.h"
13 #include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h"
12 14
13 namespace mojo { 15 namespace mojo {
14 16
15 class Application; 17 class Application;
16 18
17 namespace shell { 19 namespace shell {
18 20
19 // ServiceLoader responsible for creating connections to the ViewManager. 21 // ServiceLoader responsible for creating connections to the ViewManager.
20 class ViewManagerLoader : public ServiceLoader, public ApplicationDelegate { 22 class ViewManagerLoader
23 : public ServiceLoader,
24 public ApplicationDelegate,
25 public InterfaceProvider<view_manager::ViewManagerInitService> {
21 public: 26 public:
22 ViewManagerLoader(); 27 ViewManagerLoader();
23 virtual ~ViewManagerLoader(); 28 virtual ~ViewManagerLoader();
24 29
25 private: 30 private:
26 // ServiceLoader overrides: 31 // ServiceLoader overrides:
27 virtual void LoadService( 32 virtual void LoadService(
28 ServiceManager* manager, 33 ServiceManager* manager,
29 const GURL& url, 34 const GURL& url,
30 ScopedMessagePipeHandle shell_handle) OVERRIDE; 35 ScopedMessagePipeHandle shell_handle) OVERRIDE;
31 virtual void OnServiceError(ServiceManager* manager, 36 virtual void OnServiceError(ServiceManager* manager,
32 const GURL& url) OVERRIDE; 37 const GURL& url) OVERRIDE;
33 38
34 // ApplicationDelegate overrides. 39 // ApplicationDelegate overrides.
35 virtual bool ConfigureIncomingConnection( 40 virtual bool ConfigureIncomingConnection(
36 mojo::ApplicationConnection* connection) MOJO_OVERRIDE; 41 mojo::ApplicationConnection* connection) OVERRIDE;
42
43 // InterfaceProvider<view_manager::ViewManagerInitService> overrides.
44 virtual void BindToRequest(
45 ApplicationConnection* connection,
46 InterfaceRequest<view_manager::ViewManagerInitService> request) OVERRIDE;
37 47
38 ScopedVector<Application> apps_; 48 ScopedVector<Application> apps_;
39 49
40 DISALLOW_COPY_AND_ASSIGN(ViewManagerLoader); 50 DISALLOW_COPY_AND_ASSIGN(ViewManagerLoader);
41 }; 51 };
42 52
43 } // namespace shell 53 } // namespace shell
44 } // namespace mojo 54 } // namespace mojo
45 55
46 #endif // MOJO_SHELL_VIEW_MANAGER_LOADER_H_ 56 #endif // MOJO_SHELL_VIEW_MANAGER_LOADER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698