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 // See header file for description of DnsQueue class | 5 // See header file for description of DnsQueue class |
6 | 6 |
7 #include "components/dns_prefetch/renderer/predictor_queue.h" | 7 #include "components/network_hints/renderer/dns_prefetch_queue.h" |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/metrics/stats_counters.h" | 10 #include "base/metrics/stats_counters.h" |
11 | 11 |
12 namespace dns_prefetch { | 12 namespace network_hints { |
13 | 13 |
14 DnsQueue::DnsQueue(BufferSize size) | 14 DnsQueue::DnsQueue(BufferSize size) |
15 : buffer_(new char[size + 2]), | 15 : buffer_(new char[size + 2]), |
16 buffer_size_(size + 1), | 16 buffer_size_(size + 1), |
17 buffer_sentinel_(size + 1), | 17 buffer_sentinel_(size + 1), |
18 size_(0) { | 18 size_(0) { |
19 CHECK(0 < static_cast<BufferSize>(size + 3)); // Avoid overflow worries. | 19 CHECK(0 < static_cast<BufferSize>(size + 3)); // Avoid overflow worries. |
20 buffer_[buffer_sentinel_] = '\0'; // Guard byte to help reading data. | 20 buffer_[buffer_sentinel_] = '\0'; // Guard byte to help reading data. |
21 readable_ = writeable_ = 0; // Buffer starts empty. | 21 readable_ = writeable_ = 0; // Buffer starts empty. |
22 } | 22 } |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 146 |
147 bool DnsQueue::Validate() { | 147 bool DnsQueue::Validate() { |
148 return (readable_ >= 0) && | 148 return (readable_ >= 0) && |
149 readable_ < buffer_sentinel_ && | 149 readable_ < buffer_sentinel_ && |
150 writeable_ >= 0 && | 150 writeable_ >= 0 && |
151 writeable_ < buffer_sentinel_ && | 151 writeable_ < buffer_sentinel_ && |
152 '\0' == buffer_[buffer_sentinel_] && | 152 '\0' == buffer_[buffer_sentinel_] && |
153 ((0 == size_) == (readable_ == writeable_)); | 153 ((0 == size_) == (readable_ == writeable_)); |
154 } | 154 } |
155 | 155 |
156 } // namespace dns_prefetch | 156 } // namespace network_hints |
OLD | NEW |