Home | History | Annotate | Download | only in test_service
      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 
     13 namespace mojo {
     14 namespace test {
     15 class TestTimeService;
     16 
     17 // Embeds TestRequestTracker mojo services into an application.
     18 class 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