Battery Status API: add UMA logging for Linux.
[chromium-blink-merge.git] / mojo / services / view_manager / main.cc
blob0b2c29bbb9d05e74495ed30c0941a9f5e6ea9ed5
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"
12 namespace mojo {
13 namespace service {
15 class ViewManagerApp : public ApplicationDelegate,
16 public InterfaceFactory<ViewManagerInitService> {
17 public:
18 ViewManagerApp() {}
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);
27 return true;
30 virtual void Create(
31 ApplicationConnection* connection,
32 InterfaceRequest<ViewManagerInitService> request) OVERRIDE {
33 BindToRequest(new ViewManagerInitServiceImpl(connection, &context_),
34 &request);
37 private:
38 ViewManagerInitServiceContext context_;
40 DISALLOW_COPY_AND_ASSIGN(ViewManagerApp);
43 } // namespace service
44 } // namespace mojo
46 MojoResult MojoMain(MojoHandle shell_handle) {
47 mojo::ApplicationRunnerChromium runner(new mojo::service::ViewManagerApp);
48 return runner.Run(shell_handle);