OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 #include "base/bind.h" | 5 #include "base/bind.h" |
6 #include "mojo/application/application_runner_chromium.h" | 6 #include "mojo/application/application_runner_chromium.h" |
7 #include "mojo/public/c/system/main.h" | 7 #include "mojo/public/c/system/main.h" |
8 #include "mojo/public/cpp/application/application_delegate.h" | 8 #include "mojo/public/cpp/application/application_delegate.h" |
9 #include "mojo/public/cpp/application/application_impl.h" | 9 #include "mojo/public/cpp/application/application_impl.h" |
10 #include "mojo/public/cpp/bindings/interface_ptr.h" | 10 #include "mojo/public/cpp/bindings/interface_ptr.h" |
11 #include "mojo/public/cpp/system/message_pipe.h" | 11 #include "mojo/public/cpp/system/message_pipe.h" |
| 12 #include "mojo/services/network/public/interfaces/net_address.mojom.h" |
12 #include "services/http_server/public/http_server.mojom.h" | 13 #include "services/http_server/public/http_server.mojom.h" |
13 #include "services/http_server/public/http_server_factory.mojom.h" | 14 #include "services/http_server/public/http_server_factory.mojom.h" |
14 #include "services/http_server/public/http_server_util.h" | 15 #include "services/http_server/public/http_server_util.h" |
15 | 16 |
16 namespace mojo { | 17 namespace mojo { |
17 namespace examples { | 18 namespace examples { |
18 | 19 |
19 // This is an example of a self-contained HTTP handler. It uses the HTTP Server | 20 // This is an example of a self-contained HTTP handler. It uses the HTTP Server |
20 // service to handle the HTTP protocol details, and just contains the logic for | 21 // service to handle the HTTP protocol details, and just contains the logic for |
21 // handling its registered urls. | 22 // handling its registered urls. |
22 class HttpHandler : public ApplicationDelegate, | 23 class HttpHandler : public ApplicationDelegate, |
23 public http_server::HttpHandler { | 24 public http_server::HttpHandler { |
24 public: | 25 public: |
25 HttpHandler() : binding_(this) {} | 26 HttpHandler() : binding_(this) {} |
26 ~HttpHandler() override {} | 27 ~HttpHandler() override {} |
27 | 28 |
28 private: | 29 private: |
29 // ApplicationDelegate: | 30 // ApplicationDelegate: |
30 void Initialize(ApplicationImpl* app) override { | 31 void Initialize(ApplicationImpl* app) override { |
31 http_server::HttpHandlerPtr http_handler_ptr; | 32 http_server::HttpHandlerPtr http_handler_ptr; |
32 binding_.Bind(GetProxy(&http_handler_ptr)); | 33 binding_.Bind(GetProxy(&http_handler_ptr)); |
33 | 34 |
34 http_server::HttpServerFactoryPtr http_server_factory; | 35 http_server::HttpServerFactoryPtr http_server_factory; |
35 app->ConnectToService("mojo:http_server", &http_server_factory); | 36 app->ConnectToService("mojo:http_server", &http_server_factory); |
36 http_server_factory->CreateHttpServer(GetProxy(&http_server_).Pass(), 80); | 37 |
| 38 mojo::NetAddressPtr local_address(mojo::NetAddress::New()); |
| 39 local_address->family = mojo::NET_ADDRESS_FAMILY_IPV4; |
| 40 local_address->ipv4 = mojo::NetAddressIPv4::New(); |
| 41 local_address->ipv4->addr.resize(4); |
| 42 local_address->ipv4->addr[0] = 0; |
| 43 local_address->ipv4->addr[1] = 0; |
| 44 local_address->ipv4->addr[2] = 0; |
| 45 local_address->ipv4->addr[3] = 0; |
| 46 local_address->ipv4->port = 80; |
| 47 http_server_factory->CreateHttpServer(GetProxy(&http_server_).Pass(), |
| 48 local_address.Pass()); |
| 49 |
37 http_server_->SetHandler( | 50 http_server_->SetHandler( |
38 "/test", | 51 "/test", |
39 http_handler_ptr.Pass(), | 52 http_handler_ptr.Pass(), |
40 base::Bind(&HttpHandler::AddHandlerCallback, base::Unretained(this))); | 53 base::Bind(&HttpHandler::AddHandlerCallback, base::Unretained(this))); |
41 } | 54 } |
42 | 55 |
43 // http_server::HttpHandler: | 56 // http_server::HttpHandler: |
44 void HandleRequest( | 57 void HandleRequest( |
45 http_server::HttpRequestPtr request, | 58 http_server::HttpRequestPtr request, |
46 const Callback<void(http_server::HttpResponsePtr)>& callback) override { | 59 const Callback<void(http_server::HttpResponsePtr)>& callback) override { |
(...skipping 10 matching lines...) Expand all Loading... |
57 DISALLOW_COPY_AND_ASSIGN(HttpHandler); | 70 DISALLOW_COPY_AND_ASSIGN(HttpHandler); |
58 }; | 71 }; |
59 | 72 |
60 } // namespace examples | 73 } // namespace examples |
61 } // namespace mojo | 74 } // namespace mojo |
62 | 75 |
63 MojoResult MojoMain(MojoHandle shell_handle) { | 76 MojoResult MojoMain(MojoHandle shell_handle) { |
64 mojo::ApplicationRunnerChromium runner(new mojo::examples::HttpHandler()); | 77 mojo::ApplicationRunnerChromium runner(new mojo::examples::HttpHandler()); |
65 return runner.Run(shell_handle); | 78 return runner.Run(shell_handle); |
66 } | 79 } |
OLD | NEW |