1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/at_exit.h"
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/command_line.h"
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/message_loop/message_loop.h"
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "mojo/public/cpp/application/application.h"
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)extern "C" APPLICATION_EXPORT MojoResult CDECL MojoMain(
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    MojoHandle service_provider_handle) {
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  base::CommandLine::Init(0, NULL);
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  base::AtExitManager at_exit;
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  base::MessageLoop loop;
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  scoped_ptr<mojo::Application> app(mojo::Application::Create());
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  app->BindServiceProvider(
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      mojo::MakeScopedHandle(mojo::MessagePipeHandle(service_provider_handle)));
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  app->Initialize();
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  loop.Run();
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  return MOJO_RESULT_OK;
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
24