Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(319)

Side by Side Diff: net/http2/hpack/decoder/hpack_whole_entry_buffer.cc

Issue 2665283003: Improve memory estimate of SpdySessionPool in net/ MemoryDumpProvider. (Closed)
Patch Set: rebased Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "net/http2/hpack/decoder/hpack_whole_entry_buffer.h" 5 #include "net/http2/hpack/decoder/hpack_whole_entry_buffer.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/trace_event/memory_usage_estimator.h"
8 9
9 using base::StringPiece; 10 using base::StringPiece;
10 11
11 namespace net { 12 namespace net {
12 13
13 HpackWholeEntryBuffer::HpackWholeEntryBuffer(HpackWholeEntryListener* listener, 14 HpackWholeEntryBuffer::HpackWholeEntryBuffer(HpackWholeEntryListener* listener,
14 size_t max_string_size_bytes) 15 size_t max_string_size_bytes)
15 : max_string_size_bytes_(max_string_size_bytes) { 16 : max_string_size_bytes_(max_string_size_bytes) {
16 set_listener(listener); 17 set_listener(listener);
17 } 18 }
18 HpackWholeEntryBuffer::~HpackWholeEntryBuffer() {} 19 HpackWholeEntryBuffer::~HpackWholeEntryBuffer() {}
19 20
20 void HpackWholeEntryBuffer::set_listener(HpackWholeEntryListener* listener) { 21 void HpackWholeEntryBuffer::set_listener(HpackWholeEntryListener* listener) {
21 CHECK(listener); 22 CHECK(listener);
22 listener_ = listener; 23 listener_ = listener;
23 } 24 }
24 25
25 void HpackWholeEntryBuffer::set_max_string_size_bytes( 26 void HpackWholeEntryBuffer::set_max_string_size_bytes(
26 size_t max_string_size_bytes) { 27 size_t max_string_size_bytes) {
27 max_string_size_bytes_ = max_string_size_bytes; 28 max_string_size_bytes_ = max_string_size_bytes;
28 } 29 }
29 30
30 void HpackWholeEntryBuffer::BufferStringsIfUnbuffered() { 31 void HpackWholeEntryBuffer::BufferStringsIfUnbuffered() {
31 name_.BufferStringIfUnbuffered(); 32 name_.BufferStringIfUnbuffered();
32 value_.BufferStringIfUnbuffered(); 33 value_.BufferStringIfUnbuffered();
33 } 34 }
34 35
36 size_t HpackWholeEntryBuffer::EstimateMemoryUsage() const {
37 return base::trace_event::EstimateMemoryUsage(name_) +
38 base::trace_event::EstimateMemoryUsage(value_);
39 }
40
35 void HpackWholeEntryBuffer::OnIndexedHeader(size_t index) { 41 void HpackWholeEntryBuffer::OnIndexedHeader(size_t index) {
36 DVLOG(2) << "HpackWholeEntryBuffer::OnIndexedHeader: index=" << index; 42 DVLOG(2) << "HpackWholeEntryBuffer::OnIndexedHeader: index=" << index;
37 listener_->OnIndexedHeader(index); 43 listener_->OnIndexedHeader(index);
38 } 44 }
39 45
40 void HpackWholeEntryBuffer::OnStartLiteralHeader(HpackEntryType entry_type, 46 void HpackWholeEntryBuffer::OnStartLiteralHeader(HpackEntryType entry_type,
41 size_t maybe_name_index) { 47 size_t maybe_name_index) {
42 DVLOG(2) << "HpackWholeEntryBuffer::OnStartLiteralHeader: entry_type=" 48 DVLOG(2) << "HpackWholeEntryBuffer::OnStartLiteralHeader: entry_type="
43 << entry_type << ", maybe_name_index=" << maybe_name_index; 49 << entry_type << ", maybe_name_index=" << maybe_name_index;
44 entry_type_ = entry_type; 50 entry_type_ = entry_type;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 void HpackWholeEntryBuffer::ReportError(StringPiece error_message) { 132 void HpackWholeEntryBuffer::ReportError(StringPiece error_message) {
127 if (!error_detected_) { 133 if (!error_detected_) {
128 DVLOG(1) << "HpackWholeEntryBuffer::ReportError: " << error_message; 134 DVLOG(1) << "HpackWholeEntryBuffer::ReportError: " << error_message;
129 error_detected_ = true; 135 error_detected_ = true;
130 listener_->OnHpackDecodeError(error_message); 136 listener_->OnHpackDecodeError(error_message);
131 listener_ = HpackWholeEntryNoOpListener::NoOpListener(); 137 listener_ = HpackWholeEntryNoOpListener::NoOpListener();
132 } 138 }
133 } 139 }
134 140
135 } // namespace net 141 } // namespace net
OLDNEW
« no previous file with comments | « net/http2/hpack/decoder/hpack_whole_entry_buffer.h ('k') | net/http2/hpack/decoder/http2_hpack_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698