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 12namespace mojo { 13class ApplicationConnection; 14 15namespace test { 16class TestService; 17class TestTimeService; 18 19class 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