cr: Add 'gn' command
[chromium-blink-merge.git] / mojo / services / test_service / test_service_application.h
blob6b36f07ab90b5b7c4162911cfbfe3a7a873f4576
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.
5 #ifndef SERVICES_TEST_SERVICE_TEST_SERVICE_APPLICATION_H_
6 #define SERVICES_TEST_SERVICE_TEST_SERVICE_APPLICATION_H_
8 #include "mojo/public/cpp/application/application_delegate.h"
9 #include "mojo/public/cpp/application/interface_factory.h"
10 #include "mojo/public/cpp/system/macros.h"
12 namespace mojo {
13 class ApplicationConnection;
15 namespace test {
16 class TestService;
17 class TestTimeService;
19 class TestServiceApplication : public ApplicationDelegate,
20 public InterfaceFactory<TestService>,
21 public InterfaceFactory<TestTimeService> {
22 public:
23 TestServiceApplication();
24 ~TestServiceApplication() override;
26 void Initialize(ApplicationImpl* app) override;
28 // ApplicationDelegate implementation.
29 bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
31 // InterfaceFactory<TestService> implementation.
32 void Create(ApplicationConnection* connection,
33 InterfaceRequest<TestService> request) override;
35 // InterfaceFactory<TestTimeService> implementation.
36 void Create(ApplicationConnection* connection,
37 InterfaceRequest<TestTimeService> request) override;
39 void AddRef();
40 void ReleaseRef();
42 private:
43 int ref_count_;
44 ApplicationImpl* app_impl_;
46 MOJO_DISALLOW_COPY_AND_ASSIGN(TestServiceApplication);
49 } // namespace test
50 } // namespace mojo
52 #endif // SERVICES_TEST_SERVICE_TEST_SERVICE_APPLICATION_H_