Index: chrome/renderer/net/predictor_queue.h |
diff --git a/chrome/renderer/net/predictor_queue.h b/chrome/renderer/net/predictor_queue.h |
deleted file mode 100644 |
index dd850b7efb99e594c22540697decdfb9e48d1ed1..0000000000000000000000000000000000000000 |
--- a/chrome/renderer/net/predictor_queue.h |
+++ /dev/null |
@@ -1,87 +0,0 @@ |
-// Copyright (c) 2011 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. |
- |
-// DnsQueue is implemented as an almost FIFO circular buffer for text |
-// strings that don't have embedded nulls ('\0'). The "almost" element is that |
-// some duplicate strings may be removed (i.e., the string won't really be |
-// pushed *if* the class happens to notice that a duplicate is already in the |
-// queue). |
-// The buffers internal format is null terminated character strings |
-// (a.k.a., c_strings). |
-// It is written to be as fast as possible during push() operations, so |
-// that there will be minimal performance impact on a supplier thread. |
-// The push() operation will not block, and no memory allocation is involved |
-// (internally) during the push operations. |
-// The one caveat is that if there is insufficient space in the buffer to |
-// accept additional string via a push(), then the push() will fail, and |
-// the buffer will be unmodified. |
- |
-// This class was designed for use in DNS prefetch operations. During |
-// rendering, the supplier is the renderer (typically), and the consumer |
-// is a thread that sends messages to an async DNS resolver. |
- |
-#ifndef CHROME_RENDERER_NET_PREDICTOR_QUEUE_H__ |
-#define CHROME_RENDERER_NET_PREDICTOR_QUEUE_H__ |
- |
-#include <string> |
- |
-#include "base/basictypes.h" |
-#include "base/memory/scoped_ptr.h" |
- |
-class DnsQueue { |
- public: |
- // BufferSize is a signed type used for indexing into a buffer. |
- typedef int32 BufferSize; |
- |
- enum PushResult { SUCCESSFUL_PUSH, OVERFLOW_PUSH, REDUNDANT_PUSH }; |
- |
- // The size specified in the constructor creates a buffer large enough |
- // to hold at most one string of that length, or "many" |
- // strings of considerably shorter length. Note that strings |
- // are padded internally with a terminal '\0" while stored, |
- // so if you are trying to be precise and get N strings of |
- // length K to fit, you should actually construct a buffer with |
- // an internal size of N*(K+1). |
- explicit DnsQueue(BufferSize size); |
- ~DnsQueue(void); |
- |
- size_t Size() const { return size_; } |
- void Clear(); |
- |
- // Push takes an unterminated string of the given length |
- // and inserts it into the queue for later |
- // extraction by read. For each successful push(), there |
- // can later be a corresponding read() to extracted the text. |
- // The string must not contain an embedded null terminator |
- // Exactly length chars are written, or the push fails (where |
- // "fails" means nothing is written). |
- // Returns true for success, false for failure (nothing written). |
- PushResult Push(const char* source, const size_t length); |
- |
- PushResult Push(std::string source) { |
- return Push(source.c_str(), source.length()); |
- } |
- |
- // Extract the next available string from the buffer. |
- // If the buffer is empty, then return false. |
- bool Pop(std::string* out_string); |
- |
- private: |
- bool Validate(); // Checks that all internal data is valid. |
- |
- const scoped_ptr<char[]> buffer_; // Circular buffer, plus extra char ('\0'). |
- const BufferSize buffer_size_; // Size one smaller than allocated space. |
- const BufferSize buffer_sentinel_; // Index of extra '\0' at end of buffer_. |
- |
- // If writable_ == readable_, then the buffer is empty. |
- BufferSize readable_; // Next readable char in buffer_. |
- BufferSize writeable_; // The next space in buffer_ to push. |
- |
- // Number of queued strings |
- size_t size_; |
- |
- DISALLOW_COPY_AND_ASSIGN(DnsQueue); |
-}; // class DnsQueue |
- |
-#endif // CHROME_RENDERER_NET_PREDICTOR_QUEUE_H__ |