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
3 // found in the LICENSE file.
5 #include "mojo/public/c/system/main.h"
6 #include "mojo/public/cpp/application/application_connection.h"
7 #include "mojo/public/cpp/application/application_delegate.h"
8 #include "mojo/public/cpp/application/application_runner_chromium.h"
9 #include "mojo/services/view_manager/view_manager_init_service_context.h"
10 #include "mojo/services/view_manager/view_manager_init_service_impl.h"
15 class ViewManagerApp
: public ApplicationDelegate
,
16 public InterfaceFactory
<ViewManagerInitService
> {
19 virtual ~ViewManagerApp() {}
21 virtual bool ConfigureIncomingConnection(
22 ApplicationConnection
* connection
) OVERRIDE
{
23 context_
.ConfigureIncomingConnection(connection
);
24 // TODO(sky): this needs some sort of authentication as well as making sure
25 // we only ever have one active at a time.
26 connection
->AddService(this);
31 ApplicationConnection
* connection
,
32 InterfaceRequest
<ViewManagerInitService
> request
) OVERRIDE
{
33 BindToRequest(new ViewManagerInitServiceImpl(connection
, &context_
),
38 ViewManagerInitServiceContext context_
;
40 DISALLOW_COPY_AND_ASSIGN(ViewManagerApp
);
43 } // namespace service
46 MojoResult
MojoMain(MojoHandle shell_handle
) {
47 mojo::ApplicationRunnerChromium
runner(new mojo::service::ViewManagerApp
);
48 return runner
.Run(shell_handle
);