OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "ppapi/cpp/url_loader.h" | 5 #include "ppapi/cpp/url_loader.h" |
6 | 6 |
7 #include "ppapi/c/ppb_url_loader.h" | 7 #include "ppapi/c/ppb_url_loader.h" |
8 #include "ppapi/c/pp_errors.h" | 8 #include "ppapi/c/pp_errors.h" |
9 #include "ppapi/cpp/completion_callback.h" | 9 #include "ppapi/cpp/completion_callback.h" |
10 #include "ppapi/cpp/file_ref.h" | 10 #include "ppapi/cpp/file_ref.h" |
11 #include "ppapi/cpp/instance.h" | 11 #include "ppapi/cpp/instance_handle.h" |
12 #include "ppapi/cpp/module.h" | 12 #include "ppapi/cpp/module.h" |
13 #include "ppapi/cpp/module_impl.h" | 13 #include "ppapi/cpp/module_impl.h" |
14 #include "ppapi/cpp/url_request_info.h" | 14 #include "ppapi/cpp/url_request_info.h" |
15 #include "ppapi/cpp/url_response_info.h" | 15 #include "ppapi/cpp/url_response_info.h" |
16 | 16 |
17 namespace pp { | 17 namespace pp { |
18 | 18 |
19 namespace { | 19 namespace { |
20 | 20 |
21 template <> const char* interface_name<PPB_URLLoader>() { | 21 template <> const char* interface_name<PPB_URLLoader>() { |
22 return PPB_URLLOADER_INTERFACE; | 22 return PPB_URLLOADER_INTERFACE; |
23 } | 23 } |
24 | 24 |
25 } // namespace | 25 } // namespace |
26 | 26 |
27 URLLoader::URLLoader(PP_Resource resource) : Resource(resource) { | 27 URLLoader::URLLoader(PP_Resource resource) : Resource(resource) { |
28 } | 28 } |
29 | 29 |
30 // TODO(brettw) remove this when NaCl is updated. | 30 URLLoader::URLLoader(const InstanceHandle& instance) { |
31 URLLoader::URLLoader(const Instance& instance) { | |
32 if (!has_interface<PPB_URLLoader>()) | 31 if (!has_interface<PPB_URLLoader>()) |
33 return; | 32 return; |
34 PassRefFromConstructor(get_interface<PPB_URLLoader>()->Create( | 33 PassRefFromConstructor(get_interface<PPB_URLLoader>()->Create( |
35 instance.pp_instance())); | 34 instance.pp_instance())); |
36 } | 35 } |
37 | 36 |
38 URLLoader::URLLoader(Instance* instance) { | |
39 if (!has_interface<PPB_URLLoader>()) | |
40 return; | |
41 PassRefFromConstructor(get_interface<PPB_URLLoader>()->Create( | |
42 instance->pp_instance())); | |
43 } | |
44 | |
45 URLLoader::URLLoader(const URLLoader& other) : Resource(other) { | 37 URLLoader::URLLoader(const URLLoader& other) : Resource(other) { |
46 } | 38 } |
47 | 39 |
48 int32_t URLLoader::Open(const URLRequestInfo& request_info, | 40 int32_t URLLoader::Open(const URLRequestInfo& request_info, |
49 const CompletionCallback& cc) { | 41 const CompletionCallback& cc) { |
50 if (!has_interface<PPB_URLLoader>()) | 42 if (!has_interface<PPB_URLLoader>()) |
51 return cc.MayForce(PP_ERROR_NOINTERFACE); | 43 return cc.MayForce(PP_ERROR_NOINTERFACE); |
52 return get_interface<PPB_URLLoader>()->Open(pp_resource(), | 44 return get_interface<PPB_URLLoader>()->Open(pp_resource(), |
53 request_info.pp_resource(), | 45 request_info.pp_resource(), |
54 cc.pp_completion_callback()); | 46 cc.pp_completion_callback()); |
(...skipping 19 matching lines...) Expand all Loading... |
74 int64_t* total_bytes_to_be_received) const { | 66 int64_t* total_bytes_to_be_received) const { |
75 if (!has_interface<PPB_URLLoader>()) | 67 if (!has_interface<PPB_URLLoader>()) |
76 return false; | 68 return false; |
77 return PP_ToBool(get_interface<PPB_URLLoader>()->GetDownloadProgress( | 69 return PP_ToBool(get_interface<PPB_URLLoader>()->GetDownloadProgress( |
78 pp_resource(), bytes_received, total_bytes_to_be_received)); | 70 pp_resource(), bytes_received, total_bytes_to_be_received)); |
79 } | 71 } |
80 | 72 |
81 URLResponseInfo URLLoader::GetResponseInfo() const { | 73 URLResponseInfo URLLoader::GetResponseInfo() const { |
82 if (!has_interface<PPB_URLLoader>()) | 74 if (!has_interface<PPB_URLLoader>()) |
83 return URLResponseInfo(); | 75 return URLResponseInfo(); |
84 return URLResponseInfo(URLResponseInfo::PassRef(), | 76 return URLResponseInfo(PASS_REF, |
85 get_interface<PPB_URLLoader>()->GetResponseInfo( | 77 get_interface<PPB_URLLoader>()->GetResponseInfo( |
86 pp_resource())); | 78 pp_resource())); |
87 } | 79 } |
88 | 80 |
89 int32_t URLLoader::ReadResponseBody(void* buffer, | 81 int32_t URLLoader::ReadResponseBody(void* buffer, |
90 int32_t bytes_to_read, | 82 int32_t bytes_to_read, |
91 const CompletionCallback& cc) { | 83 const CompletionCallback& cc) { |
92 if (!has_interface<PPB_URLLoader>()) | 84 if (!has_interface<PPB_URLLoader>()) |
93 return cc.MayForce(PP_ERROR_NOINTERFACE); | 85 return cc.MayForce(PP_ERROR_NOINTERFACE); |
94 return get_interface<PPB_URLLoader>()->ReadResponseBody( | 86 return get_interface<PPB_URLLoader>()->ReadResponseBody( |
95 pp_resource(), buffer, bytes_to_read, cc.pp_completion_callback()); | 87 pp_resource(), buffer, bytes_to_read, cc.pp_completion_callback()); |
96 } | 88 } |
97 | 89 |
98 int32_t URLLoader::FinishStreamingToFile(const CompletionCallback& cc) { | 90 int32_t URLLoader::FinishStreamingToFile(const CompletionCallback& cc) { |
99 if (!has_interface<PPB_URLLoader>()) | 91 if (!has_interface<PPB_URLLoader>()) |
100 return cc.MayForce(PP_ERROR_NOINTERFACE); | 92 return cc.MayForce(PP_ERROR_NOINTERFACE); |
101 return get_interface<PPB_URLLoader>()->FinishStreamingToFile( | 93 return get_interface<PPB_URLLoader>()->FinishStreamingToFile( |
102 pp_resource(), cc.pp_completion_callback()); | 94 pp_resource(), cc.pp_completion_callback()); |
103 } | 95 } |
104 | 96 |
105 void URLLoader::Close() { | 97 void URLLoader::Close() { |
106 if (!has_interface<PPB_URLLoader>()) | 98 if (!has_interface<PPB_URLLoader>()) |
107 return; | 99 return; |
108 get_interface<PPB_URLLoader>()->Close(pp_resource()); | 100 get_interface<PPB_URLLoader>()->Close(pp_resource()); |
109 } | 101 } |
110 | 102 |
111 } // namespace pp | 103 } // namespace pp |
OLD | NEW |