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 <stdio.h> | 5 #include <stdio.h> |
6 | 6 |
7 #include "mojo/public/cpp/application/application.h" | 7 #include "mojo/public/cpp/application/application.h" |
8 #include "mojo/services/public/interfaces/network/network_service.mojom.h" | 8 #include "mojo/services/public/interfaces/network/network_service.mojom.h" |
9 #include "mojo/services/public/interfaces/network/url_loader.mojom.h" | 9 #include "mojo/services/public/interfaces/network/url_loader.mojom.h" |
10 | 10 |
11 namespace mojo { | 11 namespace mojo { |
12 namespace examples { | 12 namespace examples { |
13 | 13 |
14 class WGetApp : public Application, public URLLoaderClient { | 14 class WGetApp : public Application, public URLLoaderClient { |
15 public: | 15 public: |
16 virtual void Initialize() MOJO_OVERRIDE { | 16 virtual void Initialize() MOJO_OVERRIDE { |
17 ConnectTo("mojo:mojo_network_service", &network_service_); | 17 ConnectTo("mojo:mojo_network_service", &network_service_); |
18 Start(); | 18 Start(); |
19 } | 19 } |
20 | 20 |
21 private: | 21 private: |
22 virtual void OnReceivedRedirect(URLResponsePtr response, | 22 virtual void OnReceivedRedirect(URLResponsePtr response, |
23 const String& new_url, | 23 const String& new_url, |
24 const String& new_method) MOJO_OVERRIDE { | 24 const String& new_method) MOJO_OVERRIDE { |
25 assert(false); // This should never be called. | 25 PrintResponse(response); |
26 } | 26 } |
27 | 27 |
28 virtual void OnReceivedResponse(URLResponsePtr response) MOJO_OVERRIDE { | 28 virtual void OnReceivedResponse(URLResponsePtr response) MOJO_OVERRIDE { |
29 PrintResponse(response); | 29 PrintResponse(response); |
30 PrintResponseBody(); | 30 PrintResponseBody(); |
31 Start(); | 31 Start(); |
32 } | 32 } |
33 | 33 |
34 virtual void OnReceivedError(NetworkErrorPtr error) MOJO_OVERRIDE { | 34 virtual void OnReceivedError(NetworkErrorPtr error) MOJO_OVERRIDE { |
35 printf("Got error: %d (%s)\n", | 35 printf("Got error: %d (%s)\n", |
36 error->code, error->description.get().c_str()); | 36 error->code, error->description.get().c_str()); |
37 } | 37 } |
38 | 38 |
39 virtual void OnReceivedEndOfResponseBody() MOJO_OVERRIDE { | 39 virtual void OnReceivedEndOfResponseBody() MOJO_OVERRIDE { |
40 // Ignored. | 40 // Ignored. |
41 } | 41 } |
42 | 42 |
43 void Start() { | 43 void Start() { |
44 std::string url = PromptForURL(); | 44 std::string url = PromptForURL(); |
45 printf("Loading: %s\n", url.c_str()); | 45 printf("Loading: %s\n", url.c_str()); |
46 | 46 |
47 network_service_->CreateURLLoader(Get(&url_loader_)); | 47 network_service_->CreateURLLoader(Get(&url_loader_)); |
48 url_loader_.set_client(this); | 48 url_loader_.set_client(this); |
49 | 49 |
50 URLRequestPtr request(URLRequest::New()); | 50 URLRequestPtr request(URLRequest::New()); |
51 request->url = url; | 51 request->url = url; |
52 request->method = "GET"; | 52 request->method = "GET"; |
53 request->follow_redirects = true; | 53 request->auto_follow_redirects = true; |
54 | 54 |
55 DataPipe data_pipe; | 55 DataPipe data_pipe; |
56 response_body_stream_ = data_pipe.consumer_handle.Pass(); | 56 response_body_stream_ = data_pipe.consumer_handle.Pass(); |
57 | 57 |
58 url_loader_->Start(request.Pass(), data_pipe.producer_handle.Pass()); | 58 url_loader_->Start(request.Pass(), data_pipe.producer_handle.Pass()); |
59 } | 59 } |
60 | 60 |
61 std::string PromptForURL() { | 61 std::string PromptForURL() { |
62 printf("Enter URL> "); | 62 printf("Enter URL> "); |
63 char buf[1024]; | 63 char buf[1024]; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 }; | 107 }; |
108 | 108 |
109 } // namespace examples | 109 } // namespace examples |
110 | 110 |
111 // static | 111 // static |
112 Application* Application::Create() { | 112 Application* Application::Create() { |
113 return new examples::WGetApp(); | 113 return new examples::WGetApp(); |
114 } | 114 } |
115 | 115 |
116 } // namespace mojo | 116 } // namespace mojo |
OLD | NEW |