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. 4 5#ifndef MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_APPLICATION_H_ 6#define MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_APPLICATION_H_ 7 8#include "mojo/public/cpp/application/application_delegate.h" 9#include "mojo/public/cpp/application/interface_factory_impl.h" 10#include "mojo/public/cpp/system/macros.h" 11#include "mojo/services/test_service/test_request_tracker_impl.h" 12 13namespace mojo { 14namespace test { 15class TestTimeService; 16 17// Embeds TestRequestTracker mojo services into an application. 18class TestRequestTrackerApplication : public ApplicationDelegate, 19 public InterfaceFactory<TestTimeService> { 20 public: 21 TestRequestTrackerApplication(); 22 virtual ~TestRequestTrackerApplication(); 23 24 // ApplicationDelegate methods: 25 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) 26 MOJO_OVERRIDE; 27 28 // InterfaceFactory<TestTimeService> methods: 29 virtual void Create(ApplicationConnection* connection, 30 InterfaceRequest<TestTimeService> request) MOJO_OVERRIDE; 31 32 private: 33 TrackingContext context_; 34 typedef InterfaceFactoryImplWithContext<TestTrackedRequestServiceImpl, 35 TrackingContext> 36 TestTrackedRequestFactory; 37 TestTrackedRequestFactory test_tracked_request_factory_; 38 typedef InterfaceFactoryImplWithContext<TestRequestTrackerImpl, 39 TrackingContext> 40 TestRequestTrackerFactory; 41 TestRequestTrackerFactory test_request_tracker_factory_; 42 MOJO_DISALLOW_COPY_AND_ASSIGN(TestRequestTrackerApplication); 43}; 44 45} // namespace test 46} // namespace mojo 47 48#endif // MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_APPLICATION_H_ 49