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

Side by Side Diff: ppapi/cpp/url_request_info.h

Issue 7108044: C++ documentation for URL Loading classes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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 | Annotate | Revision Log
OLDNEW
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 #ifndef PPAPI_CPP_URL_REQUEST_INFO_H_ 5 #ifndef PPAPI_CPP_URL_REQUEST_INFO_H_
6 #define PPAPI_CPP_URL_REQUEST_INFO_H_ 6 #define PPAPI_CPP_URL_REQUEST_INFO_H_
7 7
8 #include "ppapi/c/ppb_url_request_info.h" 8 #include "ppapi/c/ppb_url_request_info.h"
9 #include "ppapi/cpp/resource.h" 9 #include "ppapi/cpp/resource.h"
10 #include "ppapi/cpp/var.h" 10 #include "ppapi/cpp/var.h"
11 11
12 /// @file
13 /// This file defines the API for creating and manipulating URL requests.
12 namespace pp { 14 namespace pp {
13 15
14 class FileRef; 16 class FileRef;
15 class Instance; 17 class Instance;
16 18
19 /// URLRequestInfo provides an API for creating and manipulating URL requests.
17 class URLRequestInfo : public Resource { 20 class URLRequestInfo : public Resource {
18 public: 21 public:
19 // Creates an is_null resource. 22 /// Default constructor. This constructor creates an
polina 2011/08/03 00:28:33 you changed the other file to say "constructor for
jond 2011/08/04 15:50:33 I'll note this and look at it for a global change.
23 /// <code>is_null</code> resource.
20 URLRequestInfo() {} 24 URLRequestInfo() {}
21 25
26 /// A constructor used to allocate a new <code>URLLoader</code> in the
27 /// browser. The resulting object will be <code>is_null</code> if the
28 /// allocation failed.
29 ///
30 /// @param[in] instance An <code>Instance</code>.
22 explicit URLRequestInfo(Instance* instance); 31 explicit URLRequestInfo(Instance* instance);
32
33 /// The copy constructor for <code>URLRequestInfo</code>.
34 ///
35 /// @param[in] other A <code>URLRequestInfo</code> to be copied.
23 URLRequestInfo(const URLRequestInfo& other); 36 URLRequestInfo(const URLRequestInfo& other);
24 37
25 // PPB_URLRequestInfo methods: 38 /// SetProperty() sets a request property. The value of the property must be
39 /// the correct type according to the property being set.
40 ///
41 /// @param[in] property A <code>PP_URLRequestProperty</code> identifying the
42 /// property to set.
43 /// @param[in] value A <code>Var</code> containing the property value.
44 ///
45 /// @return True if successful, false if any of the
46 /// parameters are invalid.
26 bool SetProperty(PP_URLRequestProperty property, const Var& value); 47 bool SetProperty(PP_URLRequestProperty property, const Var& value);
48
49 /// AppendDataToBody() appends data to the request body. A content-length
50 /// request header will be automatically generated.
51 ///
52 /// @param[in] data A pointer to a buffer holding the data.
53 /// @param[in] len The length, in bytes, of the data.
54 ///
55 /// @return True if successful, false if any of the
56 /// parameters are invalid.
27 bool AppendDataToBody(const void* data, uint32_t len); 57 bool AppendDataToBody(const void* data, uint32_t len);
28 bool AppendFileToBody(const FileRef& file_ref, 58
59 /// AppendFileToBody() is used to append an entire file, to be uploaded, to
60 /// the request body. A content-length request header will be automatically
61 /// generated.
62 ///
63 /// @param[in] file_ref A <code>FileRef_Dev</code> containing the file
polina 2011/08/03 00:28:33 Actually this has been moved out of Dev, so there
jond 2011/08/04 15:50:33 I sync'd but got to conflict - so apparently it ke
polina 2011/08/04 22:01:04 Yes, the _Dev's are gone from code. But they still
jond 2011/08/05 17:07:47 Done.
64 /// reference.
65
66 /// @param[in] expected_last_modified_time An optional (non-zero) last
67 /// modified time stamp used to validate that the file was not modified since
68 /// the given time before it was uploaded. The upload will fail with an error
69 /// code of <code>PP_ERROR_FILECHANGED</code> if the file has been modified
70 /// since the given time. If expected_last_modified_time is 0, then no
71 /// validation is performed.
72 ///
73 /// @return True if successful, false if any of the
74 /// parameters are invalid.
75 bool AppendFileToBody(const FileRef_Dev& file_ref,
29 PP_Time expected_last_modified_time = 0); 76 PP_Time expected_last_modified_time = 0);
30 bool AppendFileRangeToBody(const FileRef& file_ref, 77
78 /// AppendFileRangeToBody() is a pointer to a function used to append part or
79 /// all of a file, to be uploaded, to the request body. A content-length
80 /// request header will be automatically generated.
81 ///
82 /// @param[in] file_ref A <code>FileRef_Dev</code> containing the file
83 /// reference.
84 /// @param[in] start_offset An optional starting point offset within the
85 /// file.
86 /// @param[in] length An optional number of bytes of the file to
87 /// be included. If -1, then the sub-range to upload extends to the end of
polina 2011/08/03 00:28:33 If the value is -1?
jond 2011/08/04 15:50:33 Done.
polina 2011/08/04 22:01:04 Looks like you remove this sentence completely. Wa
jond 2011/08/05 17:07:47 Done.
88 /// the file.
89 /// @param[in] expected_last_modified_time An optional (non-zero) last
90 /// modified time stamp used to validate that the file was not modified since
91 /// the given time before it was uploaded. The upload will fail with an error
92 /// code of <code>PP_ERROR_FILECHANGED</code> if the file has been modified
93 /// since the given time. If expected_last_modified_time is 0, then no
94 /// validation is performed.
95 ///
96 /// @return True if successful, false if any of the
97 /// parameters are invalid.
98 bool AppendFileRangeToBody(const FileRef_Dev& file_ref,
31 int64_t start_offset, 99 int64_t start_offset,
32 int64_t length, 100 int64_t length,
33 PP_Time expected_last_modified_time = 0); 101 PP_Time expected_last_modified_time = 0);
34 102
35 // Convenient helpers for setting properties: 103 /// SetURL() sets the <code>PP_URLREQUESTPROPERTY_URL</code>
104 /// property for the request.
105 ///
106 /// @param[in] url_string A <code>Var</code> containing the property value.
107 ///
108 /// @return True if successful, false if the parameter is invalid.
36 bool SetURL(const Var& url_string) { 109 bool SetURL(const Var& url_string) {
37 return SetProperty(PP_URLREQUESTPROPERTY_URL, url_string); 110 return SetProperty(PP_URLREQUESTPROPERTY_URL, url_string);
38 } 111 }
112
113 /// SetMethod() sets the <code>PP_URLREQUESTPROPERTY_METHOD</code>
114 /// (corresponding to a string of type <code>PP_VARTYPE_STRING</code>)
115 /// property for the request. This string is either a POST or GET. Refer to
116 /// the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html">HTTP
117 /// Methods</a> documentation for further information.
118 ///
119 /// @param[in] method_string A <code>Var</code> containing the property
120 /// value.
121 ///
122 /// @return True if successful, false if the parameter is invalid.
39 bool SetMethod(const Var& method_string) { 123 bool SetMethod(const Var& method_string) {
40 return SetProperty(PP_URLREQUESTPROPERTY_METHOD, method_string); 124 return SetProperty(PP_URLREQUESTPROPERTY_METHOD, method_string);
41 } 125 }
126
127 /// SetHeaders() sets the <code>PP_URLREQUESTPROPERTY_HEADERS</code>
128 /// (corresponding to a <code>\n</code> delimited string of type
129 /// <code>PP_VARTYPE_STRING</code>) property for the request.
130 /// Refer to the
131 /// <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html"Header
132 /// Field Definitions</a> documentaiton for further information.
133 ///
134 /// @param[in] headers_string A <code>Var</code> containing the property
135 /// value.
136 ///
137 /// @return True if successful, false if the parameter is invalid.
42 bool SetHeaders(const Var& headers_string) { 138 bool SetHeaders(const Var& headers_string) {
43 return SetProperty(PP_URLREQUESTPROPERTY_HEADERS, headers_string); 139 return SetProperty(PP_URLREQUESTPROPERTY_HEADERS, headers_string);
44 } 140 }
141 /// SetStreamToFile() sets the
142 /// </code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> (corresponding
143 /// to a bool of type <code>PP_VARTYPE_BOOL</code>). The default of the
144 /// property is false. Set this value to true if you want to download the
145 /// data to a file. Use URL_Loader::FinishStreamingToFile() to complete
146 /// the download.
147 ///
148 /// @param[in] enable A <code>bool</code> containing the property value.
149 ///
150 /// @return True if successful, false if the parameter is invalid.
45 bool SetStreamToFile(bool enable) { 151 bool SetStreamToFile(bool enable) {
46 return SetProperty(PP_URLREQUESTPROPERTY_STREAMTOFILE, enable); 152 return SetProperty(PP_URLREQUESTPROPERTY_STREAMTOFILE, enable);
47 } 153 }
154
155 /// SetFollowRedirects() sets the
156 /// <code>PP_URLREQUESTPROPERTY_FOLLOWREDIRECT</code> (corresponding
157 /// to a bool of type <code>PP_VARTYPE_BOOL</code>). The default of the
158 /// property is true. Set this value to false if you want to use
159 /// URLLoader::FollowRedirects() to follow the redirects only after examining
160 /// redirect headers.
161 ///
162 /// @param[in] enable A <code>bool</code> containing the property value.
163 ///
164 /// @return True if successful, false if the parameter is invalid.
48 bool SetFollowRedirects(bool enable) { 165 bool SetFollowRedirects(bool enable) {
49 return SetProperty(PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, enable); 166 return SetProperty(PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, enable);
50 } 167 }
168
169 /// SetRecordDownloadProgress() sets the
170 /// <code>PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGESS</code>
171 /// (corresponding to a bool of type <code>PP_VARTYPE_BOOL</code>). The
172 /// default of the property is false. Set this value to true if you want to
173 /// be able to poll the download progress using
174 /// URLLoader::GetDownloadProgress().
175 ///
176 /// @param[in] enable A <code>bool</code> containing the property value.
177 ////
178 /// @return True if successful, false if the parameter is invalid.
51 bool SetRecordDownloadProgress(bool enable) { 179 bool SetRecordDownloadProgress(bool enable) {
52 return SetProperty(PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, enable); 180 return SetProperty(PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, enable);
53 } 181 }
182
183 /// SetRecordUploadProgress() sets the
184 /// <code>PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS</code>
185 /// (corresponding to a bool of type <code>PP_VARTYPE_BOOL</code>). The
186 /// default of the property is false. Set this value to true if you want to
187 /// be able to poll the upload progress using URLLoader::GetUploadProgress().
188 ///
189 /// @param[in] enable A <code>bool</code> containing the property value.
190 ///
191 /// @return True if successful, false if the parameter is invalid.
54 bool SetRecordUploadProgress(bool enable) { 192 bool SetRecordUploadProgress(bool enable) {
55 return SetProperty(PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, enable); 193 return SetProperty(PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, enable);
56 } 194 }
57 // To use the default referrer, set url to an Undefined Var. 195
196 /// SetCustomReferrerURL() sets the
197 /// <code>PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL</code>
198 /// (corresponding to a string of type <code>PP_VARTYPE_STRING</code> or
199 /// might be set to undefined as <code>PP_VARTYPE_UNDEFINED</code>). Set it
200 /// to a string to set a custom referrer (if empty, the referrer header will
201 /// be omitted), or to undefined to use the default referrer. Only loaders
202 /// with universal access (only available on trusted implementations) will
203 /// accept <code>URLRequestInfo</code> objects that try to set a custom
204 /// referrer; if given to a loader without universal access,
205 /// <code>PP_ERROR_BADARGUMENT</code> will result.
206 ///
207 /// @param[in] url A <code>Var</code> containing the property value.
208 ///
209 /// @return True if successful, false if the parameter is invalid.
58 bool SetCustomReferrerURL(const Var& url) { 210 bool SetCustomReferrerURL(const Var& url) {
59 return SetProperty(PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL, url); 211 return SetProperty(PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL, url);
60 } 212 }
213
214 /// SetAllowCrossOriginRequests() sets the
215 /// </code>PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS</code>
216 /// (corresponding to a bool of type <code>PP_VARTYPE_BOOL</code>). The
217 /// default of the property is false. Whether cross-origin requests are
218 /// allowed. Cross-origin requests are made using the CORS (Cross-Origin
219 /// Resource Sharing) algorithm to check whether the request should be
220 /// allowed. For the complete CORS algorithm, refer to the
221 /// <a href="http://www.w3.org/TR/access-control">Cross-Origin Resource
222 /// Sharing</a> documentation.
223 ///
224 /// @param[in] enable A <code>bool</code> containing the property value.
225 ///
226 /// @return True if successful, false if the parameter is invalid.
61 bool SetAllowCrossOriginRequests(bool enable) { 227 bool SetAllowCrossOriginRequests(bool enable) {
62 return SetProperty(PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, enable); 228 return SetProperty(PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, enable);
63 } 229 }
230
231 /// SetAllowCredentials() sets the
232 /// <code>PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS</code>
233 /// (corresponding to a bool of type <code>PP_VARTYPE_BOOL</code>). The
234 /// default of the property is false. Whether HTTP credentials are sent with
235 /// cross-origin requests. If false, no credentials are sent with the request
236 /// and cookies are ignored in the response. If the request is not
237 /// cross-origin, this property is ignored.
238 ///
239 /// @param[in] enable A <code>bool</code> containing the property value.
240 ///
241 /// @return True if successful, false if the parameter is invalid.
64 bool SetAllowCredentials(bool enable) { 242 bool SetAllowCredentials(bool enable) {
65 return SetProperty(PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, enable); 243 return SetProperty(PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, enable);
66 } 244 }
67 // To use the default content transfer encoding, set content_transfer_encoding 245
68 // to an Undefined Var. 246 /// SetCustomContentTransferEncoding() sets the
247 /// <code>PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING</code>
248 /// (corresponding to a string of type <code>PP_VARTYPE_STRING</code> or
249 /// might be set to undefined as <code>PP_VARTYPE_UNDEFINED</code>). Set it
250 /// to a string to set a custom content-transfer-encoding header (if empty,
251 /// that header will be omitted), or to undefined to use the default (if
252 /// any). Only loaders with universal access (only available on trusted
253 /// implementations) will accept <code>URLRequestInfo</code> objects that try
254 /// to set a custom content transfer encoding; if given to a loader without
255 /// universal access, <code>PP_ERROR_BADARGUMENT</code> will result.
256 ///
257 /// @param[in] content_transfer_encoding A <code>Var</code> containing the
258 /// property value. To use the default content transfer encoding, set
259 /// <code>content_transfer_encoding</code> to an undefined <code>Var</code>.
260 ///
261 /// @return True if successful, false if the parameter is invalid.
69 bool SetCustomContentTransferEncoding(const Var& content_transfer_encoding) { 262 bool SetCustomContentTransferEncoding(const Var& content_transfer_encoding) {
70 return SetProperty(PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING, 263 return SetProperty(PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING,
71 content_transfer_encoding); 264 content_transfer_encoding);
72 } 265 }
266
267 /// SetPrefetchBufferUpperThreshold() sets the
268 /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code>
269 /// (corresponding to a integer of type <code>PP_VARTYPE_INT32</code>). The
270 /// default is not defined and is set by the browser possibly depending on
271 /// system capabilities. Set it to an integer to set an upper threshold for
272 /// the prefetched buffer of an asynchronous load. When exceeded, the browser
273 /// will defer loading until
274 /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> is hit,
275 /// at which time it will begin prefetching again. When setting this
276 /// property,
277 /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> must
278 /// also be set. Behavior is undefined if the former is <= the latter.
279 ///
280 /// @param[in] size An int32_t containing the property value.
281 ///
282 /// @return True if successful, false if the parameter is invalid.
73 bool SetPrefetchBufferUpperThreshold(int32_t size) { 283 bool SetPrefetchBufferUpperThreshold(int32_t size) {
74 return SetProperty(PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD, 284 return SetProperty(PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD,
75 size); 285 size);
76 } 286 }
287
288 /// SetPrefetchBufferLowerThreshold() sets the
289 /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD</code>
290 /// (corresponding to a integer of type <code>PP_VARTYPE_INT32</code>). The
291 /// default is not defined and is set by the browser to a value appropriate
292 /// for the default
293 /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code>.
294 /// Set it to an integer to set a lower threshold for the prefetched buffer
295 /// of an asynchronous load. When reached, the browser will resume loading if
296 /// If <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> had
297 /// previously been reached.
298 /// When setting this property,
299 /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code> must also
300 /// be set. Behavior is undefined if the former is >= the latter.
301 ///
302 /// @param[in] size An int32_t containing the property value.
303 ///
304 /// @return True if successful, false if the parameter is invalid.
77 bool SetPrefetchBufferLowerThreshold(int32_t size) { 305 bool SetPrefetchBufferLowerThreshold(int32_t size) {
78 return SetProperty(PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD, 306 return SetProperty(PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD,
79 size); 307 size);
80 } 308 }
81 }; 309 };
82 310
83 } // namespace pp 311 } // namespace pp
84 312
85 #endif // PPAPI_CPP_URL_REQUEST_INFO_H_ 313 #endif // PPAPI_CPP_URL_REQUEST_INFO_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698