Inline NetLog IPv6 reachability events.
[chromium-blink-merge.git] / components / surfaces / surfaces_service_application.cc
blob8553023e5c664ca24ee9beb2a3f85865ae62fb8a
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 "components/surfaces/surfaces_service_application.h"
7 #include "components/surfaces/display_factory_impl.h"
8 #include "components/surfaces/surfaces_impl.h"
9 #include "components/surfaces/surfaces_scheduler.h"
10 #include "mojo/application/application_runner_chromium.h"
11 #include "third_party/mojo/src/mojo/public/c/system/main.h"
13 namespace surfaces {
15 SurfacesServiceApplication::SurfacesServiceApplication()
16 : next_id_namespace_(1u) {
19 SurfacesServiceApplication::~SurfacesServiceApplication() {
22 void SurfacesServiceApplication::Initialize(mojo::ApplicationImpl* app) {
23 tracing_.Initialize(app);
24 scheduler_.reset(new SurfacesScheduler);
27 bool SurfacesServiceApplication::ConfigureIncomingConnection(
28 mojo::ApplicationConnection* connection) {
29 connection->AddService<mojo::DisplayFactory>(this);
30 connection->AddService<mojo::Surface>(this);
31 return true;
34 void SurfacesServiceApplication::Create(
35 mojo::ApplicationConnection* connection,
36 mojo::InterfaceRequest<mojo::DisplayFactory> request) {
37 new DisplayFactoryImpl(&manager_, next_id_namespace_++, scheduler_.get(),
38 request.Pass());
41 void SurfacesServiceApplication::Create(
42 mojo::ApplicationConnection* connection,
43 mojo::InterfaceRequest<mojo::Surface> request) {
44 new SurfacesImpl(&manager_, next_id_namespace_++, scheduler_.get(),
45 request.Pass());
48 } // namespace surfaces
50 MojoResult MojoMain(MojoHandle shell_handle) {
51 mojo::ApplicationRunnerChromium runner(
52 new surfaces::SurfacesServiceApplication);
53 return runner.Run(shell_handle);