Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(428)

Side by Side Diff: examples/http_handler/http_handler.cc

Issue 953513002: http_server: accept full NetAddress in CreateHttpServer. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Address Ben's comments. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « examples/http_handler/BUILD.gn ('k') | services/http_server/http_server_apptest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 }
OLDNEW
« no previous file with comments | « examples/http_handler/BUILD.gn ('k') | services/http_server/http_server_apptest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698