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_SERVICE_APPLICATION_H_ 6 #define MOJO_SERVICES_TEST_SERVICE_TEST_SERVICE_APPLICATION_H_ 7 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" 11 12 namespace mojo { 13 class ApplicationConnection; 14 15 namespace test { 16 class TestService; 17 class TestTimeService; 18 19 class TestServiceApplication : public ApplicationDelegate, 20 public InterfaceFactory<TestService>, 21 public InterfaceFactory<TestTimeService> { 22 public: 23 TestServiceApplication(); 24 virtual ~TestServiceApplication(); 25 26 // ApplicationDelegate implementation. 27 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) 28 MOJO_OVERRIDE; 29 30 // InterfaceFactory<TestService> implementation. 31 virtual void Create(ApplicationConnection* connection, 32 InterfaceRequest<TestService> request) MOJO_OVERRIDE; 33 34 // InterfaceFactory<TestTimeService> implementation. 35 virtual void Create(ApplicationConnection* connection, 36 InterfaceRequest<TestTimeService> request) MOJO_OVERRIDE; 37 38 void AddRef(); 39 void ReleaseRef(); 40 41 private: 42 int ref_count_; 43 44 MOJO_DISALLOW_COPY_AND_ASSIGN(TestServiceApplication); 45 }; 46 47 } // namespace test 48 } // namespace mojo 49 50 #endif // MOJO_SERVICES_TEST_SERVICE_TEST_SERVICE_APPLICATION_H_ 51