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

Side by Side Diff: net/spdy/spdy_protocol.h

Issue 1141473003: Pass StringPiece by value instead of const ref in SpdyFramer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « no previous file | net/spdy/spdy_protocol.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 contains some protocol structures for use with SPDY 2 and 3 5 // This file contains some protocol structures for use with SPDY 2 and 3
6 // The SPDY 2 spec can be found at: 6 // The SPDY 2 spec can be found at:
7 // http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2 7 // http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2
8 // The SPDY 3 spec can be found at: 8 // The SPDY 3 spec can be found at:
9 // http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3 9 // http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3
10 10
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 class NET_EXPORT_PRIVATE SpdyFrameWithNameValueBlockIR 607 class NET_EXPORT_PRIVATE SpdyFrameWithNameValueBlockIR
608 : public NON_EXPORTED_BASE(SpdyFrameWithFinIR) { 608 : public NON_EXPORTED_BASE(SpdyFrameWithFinIR) {
609 public: 609 public:
610 const SpdyNameValueBlock& name_value_block() const { 610 const SpdyNameValueBlock& name_value_block() const {
611 return name_value_block_; 611 return name_value_block_;
612 } 612 }
613 void set_name_value_block(const SpdyNameValueBlock& name_value_block) { 613 void set_name_value_block(const SpdyNameValueBlock& name_value_block) {
614 // Deep copy. 614 // Deep copy.
615 name_value_block_ = name_value_block; 615 name_value_block_ = name_value_block;
616 } 616 }
617 void SetHeader(const base::StringPiece& name, 617 void SetHeader(base::StringPiece name, base::StringPiece value) {
618 const base::StringPiece& value) {
619 name_value_block_[name.as_string()] = value.as_string(); 618 name_value_block_[name.as_string()] = value.as_string();
620 } 619 }
621 SpdyNameValueBlock* mutable_name_value_block() { 620 SpdyNameValueBlock* mutable_name_value_block() {
622 return &name_value_block_; 621 return &name_value_block_;
623 } 622 }
624 623
625 protected: 624 protected:
626 explicit SpdyFrameWithNameValueBlockIR(SpdyStreamId stream_id); 625 explicit SpdyFrameWithNameValueBlockIR(SpdyStreamId stream_id);
627 ~SpdyFrameWithNameValueBlockIR() override; 626 ~SpdyFrameWithNameValueBlockIR() override;
628 627
629 private: 628 private:
630 SpdyNameValueBlock name_value_block_; 629 SpdyNameValueBlock name_value_block_;
631 630
632 DISALLOW_COPY_AND_ASSIGN(SpdyFrameWithNameValueBlockIR); 631 DISALLOW_COPY_AND_ASSIGN(SpdyFrameWithNameValueBlockIR);
633 }; 632 };
634 633
635 class NET_EXPORT_PRIVATE SpdyDataIR 634 class NET_EXPORT_PRIVATE SpdyDataIR
636 : public NON_EXPORTED_BASE(SpdyFrameWithFinIR) { 635 : public NON_EXPORTED_BASE(SpdyFrameWithFinIR) {
637 public: 636 public:
638 // Performs deep copy on data. 637 // Performs deep copy on data.
639 SpdyDataIR(SpdyStreamId stream_id, const base::StringPiece& data); 638 SpdyDataIR(SpdyStreamId stream_id, base::StringPiece data);
640 639
641 // Use in conjunction with SetDataShallow() for shallow-copy on data. 640 // Use in conjunction with SetDataShallow() for shallow-copy on data.
642 explicit SpdyDataIR(SpdyStreamId stream_id); 641 explicit SpdyDataIR(SpdyStreamId stream_id);
643 642
644 ~SpdyDataIR() override; 643 ~SpdyDataIR() override;
645 644
646 base::StringPiece data() const { return data_; } 645 base::StringPiece data() const { return data_; }
647 646
648 bool padded() const { return padded_; } 647 bool padded() const { return padded_; }
649 648
650 int padding_payload_len() const { return padding_payload_len_; } 649 int padding_payload_len() const { return padding_payload_len_; }
651 650
652 void set_padding_len(int padding_len) { 651 void set_padding_len(int padding_len) {
653 DCHECK_GT(padding_len, 0); 652 DCHECK_GT(padding_len, 0);
654 DCHECK_LE(padding_len, kPaddingSizePerFrame); 653 DCHECK_LE(padding_len, kPaddingSizePerFrame);
655 padded_ = true; 654 padded_ = true;
656 // The pad field takes one octet on the wire. 655 // The pad field takes one octet on the wire.
657 padding_payload_len_ = padding_len - 1; 656 padding_payload_len_ = padding_len - 1;
658 } 657 }
659 658
660 // Deep-copy of data (keep private copy). 659 // Deep-copy of data (keep private copy).
661 void SetDataDeep(const base::StringPiece& data) { 660 void SetDataDeep(base::StringPiece data) {
662 data_store_.reset(new std::string(data.data(), data.length())); 661 data_store_.reset(new std::string(data.data(), data.length()));
663 data_ = *(data_store_.get()); 662 data_ = *(data_store_.get());
664 } 663 }
665 664
666 // Shallow-copy of data (do not keep private copy). 665 // Shallow-copy of data (do not keep private copy).
667 void SetDataShallow(const base::StringPiece& data) { 666 void SetDataShallow(base::StringPiece data) {
668 data_store_.reset(); 667 data_store_.reset();
669 data_ = data; 668 data_ = data;
670 } 669 }
671 670
672 void Visit(SpdyFrameVisitor* visitor) const override; 671 void Visit(SpdyFrameVisitor* visitor) const override;
673 672
674 private: 673 private:
675 // Used to store data that this SpdyDataIR should own. 674 // Used to store data that this SpdyDataIR should own.
676 scoped_ptr<std::string> data_store_; 675 scoped_ptr<std::string> data_store_;
677 base::StringPiece data_; 676 base::StringPiece data_;
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
807 806
808 private: 807 private:
809 SpdyPingId id_; 808 SpdyPingId id_;
810 bool is_ack_; 809 bool is_ack_;
811 810
812 DISALLOW_COPY_AND_ASSIGN(SpdyPingIR); 811 DISALLOW_COPY_AND_ASSIGN(SpdyPingIR);
813 }; 812 };
814 813
815 class NET_EXPORT_PRIVATE SpdyGoAwayIR : public SpdyFrameIR { 814 class NET_EXPORT_PRIVATE SpdyGoAwayIR : public SpdyFrameIR {
816 public: 815 public:
817 SpdyGoAwayIR(SpdyStreamId last_good_stream_id, SpdyGoAwayStatus status, 816 SpdyGoAwayIR(SpdyStreamId last_good_stream_id,
818 const base::StringPiece& description); 817 SpdyGoAwayStatus status,
818 base::StringPiece description);
819 ~SpdyGoAwayIR() override; 819 ~SpdyGoAwayIR() override;
820 SpdyStreamId last_good_stream_id() const { return last_good_stream_id_; } 820 SpdyStreamId last_good_stream_id() const { return last_good_stream_id_; }
821 void set_last_good_stream_id(SpdyStreamId last_good_stream_id) { 821 void set_last_good_stream_id(SpdyStreamId last_good_stream_id) {
822 DCHECK_LE(0u, last_good_stream_id); 822 DCHECK_LE(0u, last_good_stream_id);
823 DCHECK_EQ(0u, last_good_stream_id & ~kStreamIdMask); 823 DCHECK_EQ(0u, last_good_stream_id & ~kStreamIdMask);
824 last_good_stream_id_ = last_good_stream_id; 824 last_good_stream_id_ = last_good_stream_id;
825 } 825 }
826 SpdyGoAwayStatus status() const { return status_; } 826 SpdyGoAwayStatus status() const { return status_; }
827 void set_status(SpdyGoAwayStatus status) { 827 void set_status(SpdyGoAwayStatus status) {
828 // TODO(hkhalil): Check valid ranges of status? 828 // TODO(hkhalil): Check valid ranges of status?
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
1091 SpdyFrameVisitor() {} 1091 SpdyFrameVisitor() {}
1092 virtual ~SpdyFrameVisitor() {} 1092 virtual ~SpdyFrameVisitor() {}
1093 1093
1094 private: 1094 private:
1095 DISALLOW_COPY_AND_ASSIGN(SpdyFrameVisitor); 1095 DISALLOW_COPY_AND_ASSIGN(SpdyFrameVisitor);
1096 }; 1096 };
1097 1097
1098 } // namespace net 1098 } // namespace net
1099 1099
1100 #endif // NET_SPDY_SPDY_PROTOCOL_H_ 1100 #endif // NET_SPDY_SPDY_PROTOCOL_H_
OLDNEW
« no previous file with comments | « no previous file | net/spdy/spdy_protocol.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698