| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // This file declares HttpCache::Transaction, a private class of HttpCache so | 5 // This file declares HttpCache::Transaction, a private class of HttpCache so |
| 6 // it should only be included by http_cache.cc | 6 // it should only be included by http_cache.cc |
| 7 | 7 |
| 8 #ifndef NET_HTTP_HTTP_CACHE_TRANSACTION_H_ | 8 #ifndef NET_HTTP_HTTP_CACHE_TRANSACTION_H_ |
| 9 #define NET_HTTP_HTTP_CACHE_TRANSACTION_H_ | 9 #define NET_HTTP_HTTP_CACHE_TRANSACTION_H_ |
| 10 #pragma once | 10 #pragma once |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 namespace net { | 21 namespace net { |
| 22 | 22 |
| 23 class HttpResponseHeaders; | 23 class HttpResponseHeaders; |
| 24 class PartialData; | 24 class PartialData; |
| 25 struct HttpRequestInfo; | 25 struct HttpRequestInfo; |
| 26 | 26 |
| 27 // This is the transaction that is returned by the HttpCache transaction | 27 // This is the transaction that is returned by the HttpCache transaction |
| 28 // factory. | 28 // factory. |
| 29 class HttpCache::Transaction : public HttpTransaction { | 29 class HttpCache::Transaction : public HttpTransaction { |
| 30 public: | 30 public: |
| 31 Transaction(HttpCache* cache); | |
| 32 virtual ~Transaction(); | |
| 33 | |
| 34 // HttpTransaction methods: | |
| 35 virtual int Start(const HttpRequestInfo*, CompletionCallback*, | |
| 36 const BoundNetLog&); | |
| 37 virtual int RestartIgnoringLastError(CompletionCallback* callback); | |
| 38 virtual int RestartWithCertificate(X509Certificate* client_cert, | |
| 39 CompletionCallback* callback); | |
| 40 virtual int RestartWithAuth(const string16& username, | |
| 41 const string16& password, | |
| 42 CompletionCallback* callback); | |
| 43 virtual bool IsReadyToRestartForAuth(); | |
| 44 virtual int Read(IOBuffer* buf, int buf_len, CompletionCallback* callback); | |
| 45 virtual void StopCaching(); | |
| 46 virtual const HttpResponseInfo* GetResponseInfo() const; | |
| 47 virtual LoadState GetLoadState() const; | |
| 48 virtual uint64 GetUploadProgress(void) const; | |
| 49 | |
| 50 // The transaction has the following modes, which apply to how it may access | 31 // The transaction has the following modes, which apply to how it may access |
| 51 // its cache entry. | 32 // its cache entry. |
| 52 // | 33 // |
| 53 // o If the mode of the transaction is NONE, then it is in "pass through" | 34 // o If the mode of the transaction is NONE, then it is in "pass through" |
| 54 // mode and all methods just forward to the inner network transaction. | 35 // mode and all methods just forward to the inner network transaction. |
| 55 // | 36 // |
| 56 // o If the mode of the transaction is only READ, then it may only read from | 37 // o If the mode of the transaction is only READ, then it may only read from |
| 57 // the cache entry. | 38 // the cache entry. |
| 58 // | 39 // |
| 59 // o If the mode of the transaction is only WRITE, then it may only write to | 40 // o If the mode of the transaction is only WRITE, then it may only write to |
| 60 // the cache entry. | 41 // the cache entry. |
| 61 // | 42 // |
| 62 // o If the mode of the transaction is READ_WRITE, then the transaction may | 43 // o If the mode of the transaction is READ_WRITE, then the transaction may |
| 63 // optionally modify the cache entry (e.g., possibly corresponding to | 44 // optionally modify the cache entry (e.g., possibly corresponding to |
| 64 // cache validation). | 45 // cache validation). |
| 65 // | 46 // |
| 66 // o If the mode of the transaction is UPDATE, then the transaction may | 47 // o If the mode of the transaction is UPDATE, then the transaction may |
| 67 // update existing cache entries, but will never create a new entry or | 48 // update existing cache entries, but will never create a new entry or |
| 68 // respond using the entry read from the cache. | 49 // respond using the entry read from the cache. |
| 69 enum Mode { | 50 enum Mode { |
| 70 NONE = 0, | 51 NONE = 0, |
| 71 READ_META = 1 << 0, | 52 READ_META = 1 << 0, |
| 72 READ_DATA = 1 << 1, | 53 READ_DATA = 1 << 1, |
| 73 READ = READ_META | READ_DATA, | 54 READ = READ_META | READ_DATA, |
| 74 WRITE = 1 << 2, | 55 WRITE = 1 << 2, |
| 75 READ_WRITE = READ | WRITE, | 56 READ_WRITE = READ | WRITE, |
| 76 UPDATE = READ_META | WRITE, // READ_WRITE & ~READ_DATA | 57 UPDATE = READ_META | WRITE, // READ_WRITE & ~READ_DATA |
| 77 }; | 58 }; |
| 78 | 59 |
| 60 Transaction(HttpCache* cache); |
| 61 virtual ~Transaction(); |
| 62 |
| 79 Mode mode() const { return mode_; } | 63 Mode mode() const { return mode_; } |
| 80 | 64 |
| 81 const std::string& key() const { return cache_key_; } | 65 const std::string& key() const { return cache_key_; } |
| 82 | 66 |
| 83 // Writes |buf_len| bytes of meta-data from the provided buffer |buf|. to the | 67 // Writes |buf_len| bytes of meta-data from the provided buffer |buf|. to the |
| 84 // HTTP cache entry that backs this transaction (if any). | 68 // HTTP cache entry that backs this transaction (if any). |
| 85 // Returns the number of bytes actually written, or a net error code. If the | 69 // Returns the number of bytes actually written, or a net error code. If the |
| 86 // operation cannot complete immediately, returns ERR_IO_PENDING, grabs a | 70 // operation cannot complete immediately, returns ERR_IO_PENDING, grabs a |
| 87 // reference to the buffer (until completion), and notifies the caller using | 71 // reference to the buffer (until completion), and notifies the caller using |
| 88 // the provided |callback| when the operatiopn finishes. | 72 // the provided |callback| when the operatiopn finishes. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 105 // Returns the LoadState of the writer transaction of a given ActiveEntry. In | 89 // Returns the LoadState of the writer transaction of a given ActiveEntry. In |
| 106 // other words, returns the LoadState of this transaction without asking the | 90 // other words, returns the LoadState of this transaction without asking the |
| 107 // http cache, because this transaction should be the one currently writing | 91 // http cache, because this transaction should be the one currently writing |
| 108 // to the cache entry. | 92 // to the cache entry. |
| 109 LoadState GetWriterLoadState() const; | 93 LoadState GetWriterLoadState() const; |
| 110 | 94 |
| 111 CompletionCallback* io_callback() { return &io_callback_; } | 95 CompletionCallback* io_callback() { return &io_callback_; } |
| 112 | 96 |
| 113 const BoundNetLog& net_log() const; | 97 const BoundNetLog& net_log() const; |
| 114 | 98 |
| 99 // HttpTransaction methods: |
| 100 virtual int Start(const HttpRequestInfo*, CompletionCallback*, |
| 101 const BoundNetLog&); |
| 102 virtual int RestartIgnoringLastError(CompletionCallback* callback); |
| 103 virtual int RestartWithCertificate(X509Certificate* client_cert, |
| 104 CompletionCallback* callback); |
| 105 virtual int RestartWithAuth(const string16& username, |
| 106 const string16& password, |
| 107 CompletionCallback* callback); |
| 108 virtual bool IsReadyToRestartForAuth(); |
| 109 virtual int Read(IOBuffer* buf, int buf_len, CompletionCallback* callback); |
| 110 virtual void StopCaching(); |
| 111 virtual const HttpResponseInfo* GetResponseInfo() const; |
| 112 virtual LoadState GetLoadState() const; |
| 113 virtual uint64 GetUploadProgress(void) const; |
| 114 |
| 115 private: | 115 private: |
| 116 static const size_t kNumValidationHeaders = 2; | 116 static const size_t kNumValidationHeaders = 2; |
| 117 // Helper struct to pair a header name with its value, for | 117 // Helper struct to pair a header name with its value, for |
| 118 // headers used to validate cache entries. | 118 // headers used to validate cache entries. |
| 119 struct ValidationHeaders { | 119 struct ValidationHeaders { |
| 120 ValidationHeaders() : initialized(false) {} | 120 ValidationHeaders() : initialized(false) {} |
| 121 | 121 |
| 122 std::string values[kNumValidationHeaders]; | 122 std::string values[kNumValidationHeaders]; |
| 123 bool initialized; | 123 bool initialized; |
| 124 }; | 124 }; |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 uint64 final_upload_progress_; | 351 uint64 final_upload_progress_; |
| 352 CompletionCallbackImpl<Transaction> io_callback_; | 352 CompletionCallbackImpl<Transaction> io_callback_; |
| 353 scoped_refptr<CancelableCompletionCallback<Transaction> > cache_callback_; | 353 scoped_refptr<CancelableCompletionCallback<Transaction> > cache_callback_; |
| 354 scoped_refptr<CancelableCompletionCallback<Transaction> > | 354 scoped_refptr<CancelableCompletionCallback<Transaction> > |
| 355 write_headers_callback_; | 355 write_headers_callback_; |
| 356 }; | 356 }; |
| 357 | 357 |
| 358 } // namespace net | 358 } // namespace net |
| 359 | 359 |
| 360 #endif // NET_HTTP_HTTP_CACHE_TRANSACTION_H_ | 360 #endif // NET_HTTP_HTTP_CACHE_TRANSACTION_H_ |
| OLD | NEW |