| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_SERVICE_DELEGATE_H_ |
| #define COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_SERVICE_DELEGATE_H_ |
| |
| #include "base/macros.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "components/devtools_service/public/interfaces/devtools_service.mojom.h" |
| #include "mojo/application/public/cpp/application_delegate.h" |
| #include "mojo/application/public/cpp/interface_factory.h" |
| |
| namespace devtools_service { |
| |
| class DevToolsService; |
| |
| class DevToolsServiceDelegate |
| : public mojo::ApplicationDelegate, |
| public mojo::InterfaceFactory<DevToolsRegistry>, |
| public mojo::InterfaceFactory<DevToolsCoordinator> { |
| public: |
| DevToolsServiceDelegate(); |
| ~DevToolsServiceDelegate() override; |
| |
| private: |
| // mojo::ApplicationDelegate implementation. |
| void Initialize(mojo::ApplicationImpl* app) override; |
| bool ConfigureIncomingConnection( |
| mojo::ApplicationConnection* connection) override; |
| void Quit() override; |
| |
| // mojo::InterfaceFactory<DevToolsRegistry> implementation. |
| void Create(mojo::ApplicationConnection* connection, |
| mojo::InterfaceRequest<DevToolsRegistry> request) override; |
| |
| // mojo::InterfaceFactory<DevToolsCoordinator> implementation. |
| void Create(mojo::ApplicationConnection* connection, |
| mojo::InterfaceRequest<DevToolsCoordinator> request) override; |
| |
| scoped_ptr<DevToolsService> service_; |
| |
| DISALLOW_COPY_AND_ASSIGN(DevToolsServiceDelegate); |
| }; |
| |
| } // namespace devtools_service |
| |
| #endif // COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_SERVICE_DELEGATE_H_ |