| Index: net/http/disk_cache_based_quic_server_info.h
|
| diff --git a/net/http/disk_cache_based_quic_server_info.h b/net/http/disk_cache_based_quic_server_info.h
|
| deleted file mode 100644
|
| index 3076f3aa496893e7163349c9b4c5ca7ff2aa20a4..0000000000000000000000000000000000000000
|
| --- a/net/http/disk_cache_based_quic_server_info.h
|
| +++ /dev/null
|
| @@ -1,163 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef NET_HTTP_DISK_CACHE_BASED_QUIC_SERVER_INFO_H_
|
| -#define NET_HTTP_DISK_CACHE_BASED_QUIC_SERVER_INFO_H_
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/threading/non_thread_safe.h"
|
| -#include "base/time/time.h"
|
| -#include "net/base/completion_callback.h"
|
| -#include "net/disk_cache/disk_cache.h"
|
| -#include "net/quic/crypto/quic_server_info.h"
|
| -
|
| -namespace net {
|
| -
|
| -class HttpCache;
|
| -class IOBuffer;
|
| -class QuicServerId;
|
| -
|
| -// DiskCacheBasedQuicServerInfo fetches information about a QUIC server from
|
| -// our standard disk cache. Since the information is defined to be
|
| -// non-sensitive, it's ok for us to keep it on disk.
|
| -class NET_EXPORT_PRIVATE DiskCacheBasedQuicServerInfo
|
| - : public QuicServerInfo,
|
| - public NON_EXPORTED_BASE(base::NonThreadSafe) {
|
| - public:
|
| - DiskCacheBasedQuicServerInfo(const QuicServerId& server_id,
|
| - HttpCache* http_cache);
|
| -
|
| - // QuicServerInfo implementation.
|
| - void Start() override;
|
| - int WaitForDataReady(const CompletionCallback& callback) override;
|
| - void ResetWaitForDataReadyCallback() override;
|
| - void CancelWaitForDataReadyCallback() override;
|
| - bool IsDataReady() override;
|
| - bool IsReadyToPersist() override;
|
| - void Persist() override;
|
| - void OnExternalCacheHit() override;
|
| -
|
| - private:
|
| - struct CacheOperationDataShim;
|
| -
|
| - enum State {
|
| - GET_BACKEND,
|
| - GET_BACKEND_COMPLETE,
|
| - OPEN,
|
| - OPEN_COMPLETE,
|
| - READ,
|
| - READ_COMPLETE,
|
| - WAIT_FOR_DATA_READY_DONE,
|
| - CREATE_OR_OPEN,
|
| - CREATE_OR_OPEN_COMPLETE,
|
| - WRITE,
|
| - WRITE_COMPLETE,
|
| - SET_DONE,
|
| - NONE,
|
| - };
|
| -
|
| - // Enum to track number of times data read/parse/write API calls of
|
| - // QuicServerInfo to and from disk cache is called.
|
| - enum QuicServerInfoAPICall {
|
| - QUIC_SERVER_INFO_START = 0,
|
| - QUIC_SERVER_INFO_WAIT_FOR_DATA_READY = 1,
|
| - QUIC_SERVER_INFO_PARSE = 2,
|
| - QUIC_SERVER_INFO_WAIT_FOR_DATA_READY_CANCEL = 3,
|
| - QUIC_SERVER_INFO_READY_TO_PERSIST = 4,
|
| - QUIC_SERVER_INFO_PERSIST = 5,
|
| - QUIC_SERVER_INFO_EXTERNAL_CACHE_HIT = 6,
|
| - QUIC_SERVER_INFO_NUM_OF_API_CALLS = 7,
|
| - };
|
| -
|
| - // Enum to track failure reasons to read/load/write of QuicServerInfo to
|
| - // and from disk cache.
|
| - enum FailureReason {
|
| - WAIT_FOR_DATA_READY_INVALID_ARGUMENT_FAILURE = 0,
|
| - GET_BACKEND_FAILURE = 1,
|
| - OPEN_FAILURE = 2,
|
| - CREATE_OR_OPEN_FAILURE = 3,
|
| - PARSE_NO_DATA_FAILURE = 4,
|
| - PARSE_FAILURE = 5,
|
| - READ_FAILURE = 6,
|
| - READY_TO_PERSIST_FAILURE = 7,
|
| - PERSIST_NO_BACKEND_FAILURE = 8,
|
| - WRITE_FAILURE = 9,
|
| - NO_FAILURE = 10,
|
| - NUM_OF_FAILURES = 11,
|
| - };
|
| -
|
| - ~DiskCacheBasedQuicServerInfo() override;
|
| -
|
| - // Persists |pending_write_data_| if it is not empty, otherwise serializes the
|
| - // data and pesists it.
|
| - void PersistInternal();
|
| -
|
| - std::string key() const;
|
| -
|
| - // The |unused| parameter is a small hack so that we can have the
|
| - // CacheOperationDataShim object owned by the Callback that is created for
|
| - // this method. See comment above CacheOperationDataShim for details.
|
| - void OnIOComplete(CacheOperationDataShim* unused, int rv);
|
| -
|
| - int DoLoop(int rv);
|
| -
|
| - int DoGetBackendComplete(int rv);
|
| - int DoOpenComplete(int rv);
|
| - int DoReadComplete(int rv);
|
| - int DoWriteComplete(int rv);
|
| - int DoCreateOrOpenComplete(int rv);
|
| -
|
| - int DoGetBackend();
|
| - int DoOpen();
|
| - int DoRead();
|
| - int DoWrite();
|
| - int DoCreateOrOpen();
|
| -
|
| - // DoWaitForDataReadyDone is the terminal state of the read operation.
|
| - int DoWaitForDataReadyDone();
|
| -
|
| - // DoSetDone is the terminal state of the write operation.
|
| - int DoSetDone();
|
| -
|
| - // Tracks in a histogram the number of times data read/parse/write API calls
|
| - // of QuicServerInfo to and from disk cache is called.
|
| - void RecordQuicServerInfoStatus(QuicServerInfoAPICall call);
|
| -
|
| - // Tracks in a histogram the failure reasons to read/load/write of
|
| - // QuicServerInfo to and from disk cache. It also saves the |failure| in
|
| - // |last_failure_|.
|
| - void RecordQuicServerInfoFailure(FailureReason failure);
|
| -
|
| - // Tracks in a histogram if |last_failure_| is not NO_FAILURE.
|
| - void RecordLastFailure();
|
| -
|
| - CacheOperationDataShim* data_shim_; // Owned by |io_callback_|.
|
| - CompletionCallback io_callback_;
|
| - State state_;
|
| - bool ready_;
|
| - bool found_entry_; // Controls the behavior of DoCreateOrOpen.
|
| - std::string new_data_;
|
| - std::string pending_write_data_;
|
| - const QuicServerId server_id_;
|
| - HttpCache* const http_cache_;
|
| - disk_cache::Backend* backend_;
|
| - disk_cache::Entry* entry_;
|
| - CompletionCallback wait_for_ready_callback_;
|
| - scoped_refptr<IOBuffer> read_buffer_;
|
| - scoped_refptr<IOBuffer> write_buffer_;
|
| - std::string data_;
|
| - base::TimeTicks load_start_time_;
|
| - FailureReason last_failure_;
|
| -
|
| - base::WeakPtrFactory<DiskCacheBasedQuicServerInfo> weak_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DiskCacheBasedQuicServerInfo);
|
| -};
|
| -
|
| -} // namespace net
|
| -
|
| -#endif // NET_HTTP_DISK_CACHE_BASED_QUIC_SERVER_INFO_H_
|
|
|