| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 NET_URL_REQUEST_URL_REQUEST_JOB_H_ | 5 #ifndef NET_URL_REQUEST_URL_REQUEST_JOB_H_ |
| 6 #define NET_URL_REQUEST_URL_REQUEST_JOB_H_ | 6 #define NET_URL_REQUEST_URL_REQUEST_JOB_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
| 12 #include "base/ref_counted.h" | 12 #include "base/ref_counted.h" |
| 13 #include "net/base/auth.h" | 13 #include "net/base/auth.h" |
| 14 #include "net/base/filter.h" | 14 #include "net/base/filter.h" |
| 15 #include "net/base/load_states.h" | 15 #include "net/base/load_states.h" |
| 16 #include "net/url_request/url_request_status.h" | 16 #include "net/url_request/url_request_status.h" |
| 17 | 17 |
| 18 namespace net { | 18 namespace net { |
| 19 class HttpResponseInfo; | 19 class HttpResponseInfo; |
| 20 class IOBuffer; |
| 20 class UploadData; | 21 class UploadData; |
| 21 } | 22 } |
| 22 | 23 |
| 23 class GURL; | 24 class GURL; |
| 24 class URLRequest; | 25 class URLRequest; |
| 25 class URLRequestJobMetrics; | 26 class URLRequestJobMetrics; |
| 26 | 27 |
| 27 // The URLRequestJob is using RefCounterThreadSafe because some sub classes | 28 // The URLRequestJob is using RefCounterThreadSafe because some sub classes |
| 28 // can be destroyed on multiple threads. This is the case of the | 29 // can be destroyed on multiple threads. This is the case of the |
| 29 // UrlRequestFileJob. | 30 // UrlRequestFileJob. |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 virtual void Kill(); | 72 virtual void Kill(); |
| 72 | 73 |
| 73 // Called to detach the request from this Job. Results in the Job being | 74 // Called to detach the request from this Job. Results in the Job being |
| 74 // killed off eventually. The job must not use the request pointer any more. | 75 // killed off eventually. The job must not use the request pointer any more. |
| 75 void DetachRequest(); | 76 void DetachRequest(); |
| 76 | 77 |
| 77 // Called to read post-filtered data from this Job, returning the number of | 78 // Called to read post-filtered data from this Job, returning the number of |
| 78 // bytes read, 0 when there is no more data, or -1 if there was an error. | 79 // bytes read, 0 when there is no more data, or -1 if there was an error. |
| 79 // This is just the backend for URLRequest::Read, see that function for more | 80 // This is just the backend for URLRequest::Read, see that function for more |
| 80 // info. | 81 // info. |
| 81 bool Read(char* buf, int buf_size, int *bytes_read); | 82 bool Read(net::IOBuffer* buf, int buf_size, int *bytes_read); |
| 82 | 83 |
| 83 // Called to fetch the current load state for the job. | 84 // Called to fetch the current load state for the job. |
| 84 virtual net::LoadState GetLoadState() const { return net::LOAD_STATE_IDLE; } | 85 virtual net::LoadState GetLoadState() const { return net::LOAD_STATE_IDLE; } |
| 85 | 86 |
| 86 // Called to get the upload progress in bytes. | 87 // Called to get the upload progress in bytes. |
| 87 virtual uint64 GetUploadProgress() const { return 0; } | 88 virtual uint64 GetUploadProgress() const { return 0; } |
| 88 | 89 |
| 89 // Called to fetch the mime_type for this request. Only makes sense for some | 90 // Called to fetch the mime_type for this request. Only makes sense for some |
| 90 // types of requests. Returns true on success. Calling this on a type that | 91 // types of requests. Returns true on success. Calling this on a type that |
| 91 // doesn't have a mime type will return false. | 92 // doesn't have a mime type will return false. |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 | 225 |
| 225 // Called to read raw (pre-filtered) data from this Job. | 226 // Called to read raw (pre-filtered) data from this Job. |
| 226 // If returning true, data was read from the job. buf will contain | 227 // If returning true, data was read from the job. buf will contain |
| 227 // the data, and bytes_read will receive the number of bytes read. | 228 // the data, and bytes_read will receive the number of bytes read. |
| 228 // If returning true, and bytes_read is returned as 0, there is no | 229 // If returning true, and bytes_read is returned as 0, there is no |
| 229 // additional data to be read. | 230 // additional data to be read. |
| 230 // If returning false, an error occurred or an async IO is now pending. | 231 // If returning false, an error occurred or an async IO is now pending. |
| 231 // If async IO is pending, the status of the request will be | 232 // If async IO is pending, the status of the request will be |
| 232 // URLRequestStatus::IO_PENDING, and buf must remain available until the | 233 // URLRequestStatus::IO_PENDING, and buf must remain available until the |
| 233 // operation is completed. See comments on URLRequest::Read for more info. | 234 // operation is completed. See comments on URLRequest::Read for more info. |
| 234 virtual bool ReadRawData(char* buf, int buf_size, int *bytes_read); | 235 virtual bool ReadRawData(net::IOBuffer* buf, int buf_size, int *bytes_read); |
| 235 | 236 |
| 236 // Informs the filter that data has been read into its buffer | 237 // Informs the filter that data has been read into its buffer |
| 237 void FilteredDataRead(int bytes_read); | 238 void FilteredDataRead(int bytes_read); |
| 238 | 239 |
| 239 // Reads filtered data from the request. Returns true if successful, | 240 // Reads filtered data from the request. Returns true if successful, |
| 240 // false otherwise. Note, if there is not enough data received to | 241 // false otherwise. Note, if there is not enough data received to |
| 241 // return data, this call can issue a new async IO request under | 242 // return data, this call can issue a new async IO request under |
| 242 // the hood. | 243 // the hood. |
| 243 bool ReadFilteredData(int *bytes_read); | 244 bool ReadFilteredData(int *bytes_read); |
| 244 | 245 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 // all the data or an error has been encountered. Set exclusively by | 283 // all the data or an error has been encountered. Set exclusively by |
| 283 // NotifyDone so that it is kept in sync with the request. | 284 // NotifyDone so that it is kept in sync with the request. |
| 284 bool done_; | 285 bool done_; |
| 285 | 286 |
| 286 // The data stream filter which is enabled on demand. | 287 // The data stream filter which is enabled on demand. |
| 287 scoped_ptr<Filter> filter_; | 288 scoped_ptr<Filter> filter_; |
| 288 // When we filter data, we receive data into the filter buffers. After | 289 // When we filter data, we receive data into the filter buffers. After |
| 289 // processing the filtered data, we return the data in the caller's buffer. | 290 // processing the filtered data, we return the data in the caller's buffer. |
| 290 // While the async IO is in progress, we save the user buffer here, and | 291 // While the async IO is in progress, we save the user buffer here, and |
| 291 // when the IO completes, we fill this in. | 292 // when the IO completes, we fill this in. |
| 292 char *read_buffer_; | 293 net::IOBuffer *read_buffer_; |
| 293 int read_buffer_len_; | 294 int read_buffer_len_; |
| 294 | 295 |
| 295 // Used by HandleResponseIfNecessary to track whether we've sent the | 296 // Used by HandleResponseIfNecessary to track whether we've sent the |
| 296 // OnResponseStarted callback and potentially redirect callbacks as well. | 297 // OnResponseStarted callback and potentially redirect callbacks as well. |
| 297 bool has_handled_response_; | 298 bool has_handled_response_; |
| 298 | 299 |
| 299 // Expected content size | 300 // Expected content size |
| 300 int64 expected_content_size_; | 301 int64 expected_content_size_; |
| 301 | 302 |
| 302 DISALLOW_COPY_AND_ASSIGN(URLRequestJob); | 303 DISALLOW_COPY_AND_ASSIGN(URLRequestJob); |
| 303 }; | 304 }; |
| 304 | 305 |
| 305 #endif // NET_URL_REQUEST_URL_REQUEST_JOB_H_ | 306 #endif // NET_URL_REQUEST_URL_REQUEST_JOB_H_ |
| 306 | 307 |
| OLD | NEW |