Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / mojo / services / test_service / test_request_tracker_application.h
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_