| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_HTTP_SERVER_H_ | 5 #ifndef COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_HTTP_SERVER_H_ |
| 6 #define COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_HTTP_SERVER_H_ | 6 #define COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_HTTP_SERVER_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "mojo/services/network/public/interfaces/http_connection.mojom.h" | 12 #include "mojo/services/network/public/interfaces/http_connection.mojom.h" |
| 13 #include "mojo/services/network/public/interfaces/http_message.mojom.h" |
| 13 #include "mojo/services/network/public/interfaces/http_server.mojom.h" | 14 #include "mojo/services/network/public/interfaces/http_server.mojom.h" |
| 14 | 15 |
| 15 namespace devtools_service { | 16 namespace devtools_service { |
| 16 | 17 |
| 17 class DevToolsService; | 18 class DevToolsService; |
| 18 | 19 |
| 19 class DevToolsHttpServer : public mojo::HttpServerDelegate { | 20 class DevToolsHttpServer : public mojo::HttpServerDelegate { |
| 20 public: | 21 public: |
| 21 // |service| must outlive this object. | 22 // |service| must outlive this object. |
| 22 DevToolsHttpServer(DevToolsService* service, uint16_t remote_debugging_port); | 23 DevToolsHttpServer(DevToolsService* service, uint16_t remote_debugging_port); |
| 23 ~DevToolsHttpServer() override; | 24 ~DevToolsHttpServer() override; |
| 24 | 25 |
| 25 private: | 26 private: |
| 26 class HttpConnectionDelegateImpl; | 27 class HttpConnectionDelegateImpl; |
| 27 | 28 |
| 28 // mojo::HttpServerDelegate implementation. | 29 // mojo::HttpServerDelegate implementation. |
| 29 void OnConnected( | 30 void OnConnected( |
| 30 mojo::HttpConnectionPtr connection, | 31 mojo::HttpConnectionPtr connection, |
| 31 mojo::InterfaceRequest<mojo::HttpConnectionDelegate> delegate) override; | 32 mojo::InterfaceRequest<mojo::HttpConnectionDelegate> delegate) override; |
| 32 | 33 |
| 33 // The following methods are called by HttpConnectionDelegateImpl. | 34 // The following three methods are called by HttpConnectionDelegateImpl. |
| 34 using OnReceivedRequestCallback = | 35 using OnReceivedRequestCallback = |
| 35 mojo::HttpConnectionDelegate::OnReceivedRequestCallback; | 36 mojo::HttpConnectionDelegate::OnReceivedRequestCallback; |
| 36 void OnReceivedRequest(HttpConnectionDelegateImpl* connection, | 37 void OnReceivedRequest(HttpConnectionDelegateImpl* connection, |
| 37 mojo::HttpRequestPtr request, | 38 mojo::HttpRequestPtr request, |
| 38 const OnReceivedRequestCallback& callback); | 39 const OnReceivedRequestCallback& callback); |
| 39 | |
| 40 using OnReceivedWebSocketRequestCallback = | 40 using OnReceivedWebSocketRequestCallback = |
| 41 mojo::HttpConnectionDelegate::OnReceivedWebSocketRequestCallback; | 41 mojo::HttpConnectionDelegate::OnReceivedWebSocketRequestCallback; |
| 42 void OnReceivedWebSocketRequest( | 42 void OnReceivedWebSocketRequest( |
| 43 HttpConnectionDelegateImpl* connection, | 43 HttpConnectionDelegateImpl* connection, |
| 44 mojo::HttpRequestPtr request, | 44 mojo::HttpRequestPtr request, |
| 45 const OnReceivedWebSocketRequestCallback& callback); | 45 const OnReceivedWebSocketRequestCallback& callback); |
| 46 void OnConnectionClosed(HttpConnectionDelegateImpl* connection); |
| 46 | 47 |
| 47 void OnConnectionClosed(HttpConnectionDelegateImpl* connection); | 48 mojo::HttpResponsePtr ProcessJsonRequest(mojo::HttpRequestPtr request); |
| 48 | 49 |
| 49 // Not owned by this object. | 50 // Not owned by this object. |
| 50 DevToolsService* const service_; | 51 DevToolsService* const service_; |
| 51 | 52 |
| 53 const uint16_t remote_debugging_port_; |
| 54 |
| 52 scoped_ptr<mojo::Binding<mojo::HttpServerDelegate>> | 55 scoped_ptr<mojo::Binding<mojo::HttpServerDelegate>> |
| 53 http_server_delegate_binding_; | 56 http_server_delegate_binding_; |
| 54 | 57 |
| 55 // Owns the elements. | 58 // Owns the elements. |
| 56 std::set<HttpConnectionDelegateImpl*> connections_; | 59 std::set<HttpConnectionDelegateImpl*> connections_; |
| 57 | 60 |
| 58 DISALLOW_COPY_AND_ASSIGN(DevToolsHttpServer); | 61 DISALLOW_COPY_AND_ASSIGN(DevToolsHttpServer); |
| 59 }; | 62 }; |
| 60 | 63 |
| 61 } // namespace devtools_service | 64 } // namespace devtools_service |
| 62 | 65 |
| 63 #endif // COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_HTTP_SERVER_H_ | 66 #endif // COMPONENTS_DEVTOOLS_SERVICE_DEVTOOLS_HTTP_SERVER_H_ |
| OLD | NEW |