| Index: mojo/services/test_service/test_service_application.cc
|
| diff --git a/mojo/services/test_service/test_service_application.cc b/mojo/services/test_service/test_service_application.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..70a2824e993602f680016864da4a8387fc22f143
|
| --- /dev/null
|
| +++ b/mojo/services/test_service/test_service_application.cc
|
| @@ -0,0 +1,66 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "mojo/services/test_service/test_service_application.h"
|
| +
|
| +#include <assert.h>
|
| +
|
| +#include "mojo/public/c/system/main.h"
|
| +#include "mojo/public/cpp/application/application_connection.h"
|
| +#include "mojo/public/cpp/application/application_runner.h"
|
| +#include "mojo/public/cpp/utility/run_loop.h"
|
| +#include "mojo/services/test_service/test_service_impl.h"
|
| +#include "mojo/services/test_service/test_time_service_impl.h"
|
| +
|
| +namespace mojo {
|
| +namespace test {
|
| +
|
| +TestServiceApplication::TestServiceApplication()
|
| + : ref_count_(0), app_impl_(nullptr) {
|
| +}
|
| +
|
| +TestServiceApplication::~TestServiceApplication() {
|
| +}
|
| +
|
| +void TestServiceApplication::Initialize(ApplicationImpl* app) {
|
| + app_impl_ = app;
|
| +}
|
| +
|
| +bool TestServiceApplication::ConfigureIncomingConnection(
|
| + ApplicationConnection* connection) {
|
| + connection->AddService<TestService>(this);
|
| + connection->AddService<TestTimeService>(this);
|
| + return true;
|
| +}
|
| +
|
| +void TestServiceApplication::Create(ApplicationConnection* connection,
|
| + InterfaceRequest<TestService> request) {
|
| + new TestServiceImpl(app_impl_, this, request.Pass());
|
| + AddRef();
|
| +}
|
| +
|
| +void TestServiceApplication::Create(ApplicationConnection* connection,
|
| + InterfaceRequest<TestTimeService> request) {
|
| + new TestTimeServiceImpl(app_impl_, request.Pass());
|
| +}
|
| +
|
| +void TestServiceApplication::AddRef() {
|
| + assert(ref_count_ >= 0);
|
| + ref_count_++;
|
| +}
|
| +
|
| +void TestServiceApplication::ReleaseRef() {
|
| + assert(ref_count_ > 0);
|
| + ref_count_--;
|
| + if (ref_count_ <= 0)
|
| + RunLoop::current()->Quit();
|
| +}
|
| +
|
| +} // namespace test
|
| +} // namespace mojo
|
| +
|
| +MojoResult MojoMain(MojoHandle shell_handle) {
|
| + mojo::ApplicationRunner runner(new mojo::test::TestServiceApplication);
|
| + return runner.Run(shell_handle);
|
| +}
|
|
|