Index: mojo/services/test_service/test_request_tracker_application.cc |
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 0000000000000000000000000000000000000000..2fcf1f36a9a04934184e8a10535e96988ff12671 |
--- /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); |
+} |