diff options
Diffstat (limited to 'mojo/services/test_service/test_request_tracker_application.cc')
-rw-r--r-- | mojo/services/test_service/test_request_tracker_application.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/mojo/services/test_service/test_request_tracker_application.cc b/mojo/services/test_service/test_request_tracker_application.cc new file mode 100644 index 0000000..2fcf1f3 --- /dev/null +++ b/mojo/services/test_service/test_request_tracker_application.cc @@ -0,0 +1,63 @@ +// 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_request_tracker_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/services/test_service/test_time_service_impl.h" + +namespace mojo { +namespace test { + +TestRequestTrackerApplication::TestRequestTrackerApplication() + : app_impl_(nullptr) { +} + +TestRequestTrackerApplication::~TestRequestTrackerApplication() { +} + +void TestRequestTrackerApplication::Initialize(ApplicationImpl* app) { + app_impl_ = app; +} + +bool TestRequestTrackerApplication::ConfigureIncomingConnection( + ApplicationConnection* connection) { + // Every instance of the service and recorder shares the context. + // Note, this app is single-threaded, so this is thread safe. + connection->AddService<TestTimeService>(this); + connection->AddService<TestRequestTracker>(this); + connection->AddService<TestTrackedRequestService>(this); + return true; +} + +void TestRequestTrackerApplication::Create( + ApplicationConnection* connection, + InterfaceRequest<TestTimeService> request) { + new TestTimeServiceImpl(app_impl_, request.Pass()); +} + +void TestRequestTrackerApplication::Create( + ApplicationConnection* connection, + InterfaceRequest<TestRequestTracker> request) { + new TestRequestTrackerImpl(request.Pass(), &context_); +} + +void TestRequestTrackerApplication::Create( + ApplicationConnection* connection, + InterfaceRequest<TestTrackedRequestService> request) { + new TestTrackedRequestServiceImpl(request.Pass(), &context_); +} + +} // namespace test +} // namespace mojo + +MojoResult MojoMain(MojoHandle shell_handle) { + mojo::ApplicationRunner runner( + new mojo::test::TestRequestTrackerApplication); + return runner.Run(shell_handle); +} |