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

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

Issue 8790015: Make SpdyFrame::size a constant instead of a static method so gcc can optimize the call away. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: fff Created 9 years 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 | Annotate | Revision Log
« no previous file with comments | « net/spdy/spdy_framer_test.cc ('k') | net/spdy/spdy_protocol_test.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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. 5 // This file contains some protocol structures for use with Spdy.
6 6
7 #ifndef NET_SPDY_SPDY_PROTOCOL_H_ 7 #ifndef NET_SPDY_SPDY_PROTOCOL_H_
8 #define NET_SPDY_SPDY_PROTOCOL_H_ 8 #define NET_SPDY_SPDY_PROTOCOL_H_
9 #pragma once 9 #pragma once
10 10
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 DCHECK_EQ(0u, (length & ~kLengthMask)); 376 DCHECK_EQ(0u, (length & ~kLengthMask));
377 length = htonl(length & kLengthMask); 377 length = htonl(length & kLengthMask);
378 frame_->flags_length_.length_ = flags() | length; 378 frame_->flags_length_.length_ = flags() | length;
379 } 379 }
380 380
381 bool is_control_frame() const { 381 bool is_control_frame() const {
382 return (ntohs(frame_->control_.version_) & kControlFlagMask) == 382 return (ntohs(frame_->control_.version_) & kControlFlagMask) ==
383 kControlFlagMask; 383 kControlFlagMask;
384 } 384 }
385 385
386 // Returns the size of the SpdyFrameBlock structure. 386 // The size of the SpdyFrameBlock structure.
387 // Every SpdyFrame* class has a static size() method for accessing 387 // Every SpdyFrame* class has a static size() method for accessing
388 // the size of the data structure which will be sent over the wire. 388 // the size of the data structure which will be sent over the wire.
389 // Note: this is not the same as sizeof(SpdyFrame). 389 // Note: this is not the same as sizeof(SpdyFrame).
390 static size_t size() { return sizeof(struct SpdyFrameBlock); } 390 enum { kHeaderSize = sizeof(struct SpdyFrameBlock) };
391 391
392 protected: 392 protected:
393 SpdyFrameBlock* frame_; 393 SpdyFrameBlock* frame_;
394 394
395 private: 395 private:
396 bool owns_buffer_; 396 bool owns_buffer_;
397 DISALLOW_COPY_AND_ASSIGN(SpdyFrame); 397 DISALLOW_COPY_AND_ASSIGN(SpdyFrame);
398 }; 398 };
399 399
400 // A Data Frame. 400 // A Data Frame.
(...skipping 10 matching lines...) Expand all
411 // Note that setting the stream id sets the control bit to false. 411 // Note that setting the stream id sets the control bit to false.
412 // As stream id should always be set, this means the control bit 412 // As stream id should always be set, this means the control bit
413 // should always be set correctly. 413 // should always be set correctly.
414 void set_stream_id(SpdyStreamId id) { 414 void set_stream_id(SpdyStreamId id) {
415 DCHECK_EQ(0u, (id & ~kStreamIdMask)); 415 DCHECK_EQ(0u, (id & ~kStreamIdMask));
416 frame_->data_.stream_id_ = htonl(id & kStreamIdMask); 416 frame_->data_.stream_id_ = htonl(id & kStreamIdMask);
417 } 417 }
418 418
419 // Returns the size of the SpdyFrameBlock structure. 419 // Returns the size of the SpdyFrameBlock structure.
420 // Note: this is not the size of the SpdyDataFrame class. 420 // Note: this is not the size of the SpdyDataFrame class.
421 static size_t size() { return SpdyFrame::size(); } 421 static size_t size() { return SpdyFrame::kHeaderSize; }
422 422
423 const char* payload() const { 423 const char* payload() const {
424 return reinterpret_cast<const char*>(frame_) + size(); 424 return reinterpret_cast<const char*>(frame_) + size();
425 } 425 }
426 426
427 private: 427 private:
428 DISALLOW_COPY_AND_ASSIGN(SpdyDataFrame); 428 DISALLOW_COPY_AND_ASSIGN(SpdyDataFrame);
429 }; 429 };
430 430
431 // A Control Frame. 431 // A Control Frame.
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 void set_associated_stream_id(SpdyStreamId id) { 515 void set_associated_stream_id(SpdyStreamId id) {
516 mutable_block()->associated_stream_id_ = htonl(id & kStreamIdMask); 516 mutable_block()->associated_stream_id_ = htonl(id & kStreamIdMask);
517 } 517 }
518 518
519 SpdyPriority priority() const { 519 SpdyPriority priority() const {
520 return (block()->priority_ & kPriorityMask) >> 6; 520 return (block()->priority_ & kPriorityMask) >> 6;
521 } 521 }
522 522
523 // The number of bytes in the header block beyond the frame header length. 523 // The number of bytes in the header block beyond the frame header length.
524 int header_block_len() const { 524 int header_block_len() const {
525 return length() - (size() - SpdyFrame::size()); 525 return length() - (size() - SpdyFrame::kHeaderSize);
526 } 526 }
527 527
528 const char* header_block() const { 528 const char* header_block() const {
529 return reinterpret_cast<const char*>(block()) + size(); 529 return reinterpret_cast<const char*>(block()) + size();
530 } 530 }
531 531
532 // Returns the size of the SpdySynStreamControlFrameBlock structure. 532 // Returns the size of the SpdySynStreamControlFrameBlock structure.
533 // Note: this is not the size of the SpdySynStreamControlFrame class. 533 // Note: this is not the size of the SpdySynStreamControlFrame class.
534 static size_t size() { return sizeof(SpdySynStreamControlFrameBlock); } 534 static size_t size() { return sizeof(SpdySynStreamControlFrameBlock); }
535 535
(...skipping 16 matching lines...) Expand all
552 552
553 SpdyStreamId stream_id() const { 553 SpdyStreamId stream_id() const {
554 return ntohl(block()->stream_id_) & kStreamIdMask; 554 return ntohl(block()->stream_id_) & kStreamIdMask;
555 } 555 }
556 556
557 void set_stream_id(SpdyStreamId id) { 557 void set_stream_id(SpdyStreamId id) {
558 mutable_block()->stream_id_ = htonl(id & kStreamIdMask); 558 mutable_block()->stream_id_ = htonl(id & kStreamIdMask);
559 } 559 }
560 560
561 int header_block_len() const { 561 int header_block_len() const {
562 return length() - (size() - SpdyFrame::size()); 562 return length() - (size() - SpdyFrame::kHeaderSize);
563 } 563 }
564 564
565 const char* header_block() const { 565 const char* header_block() const {
566 return reinterpret_cast<const char*>(block()) + size(); 566 return reinterpret_cast<const char*>(block()) + size();
567 } 567 }
568 568
569 // Returns the size of the SpdySynReplyControlFrameBlock structure. 569 // Returns the size of the SpdySynReplyControlFrameBlock structure.
570 // Note: this is not the size of the SpdySynReplyControlFrame class. 570 // Note: this is not the size of the SpdySynReplyControlFrame class.
571 static size_t size() { return sizeof(SpdySynReplyControlFrameBlock); } 571 static size_t size() { return sizeof(SpdySynReplyControlFrameBlock); }
572 572
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 629
630 uint32 num_entries() const { 630 uint32 num_entries() const {
631 return ntohl(block()->num_entries_); 631 return ntohl(block()->num_entries_);
632 } 632 }
633 633
634 void set_num_entries(int val) { 634 void set_num_entries(int val) {
635 mutable_block()->num_entries_ = htonl(val); 635 mutable_block()->num_entries_ = htonl(val);
636 } 636 }
637 637
638 int header_block_len() const { 638 int header_block_len() const {
639 return length() - (size() - SpdyFrame::size()); 639 return length() - (size() - SpdyFrame::kHeaderSize);
640 } 640 }
641 641
642 const char* header_block() const { 642 const char* header_block() const {
643 return reinterpret_cast<const char*>(block()) + size(); 643 return reinterpret_cast<const char*>(block()) + size();
644 } 644 }
645 645
646 // Returns the size of the SpdySettingsControlFrameBlock structure. 646 // Returns the size of the SpdySettingsControlFrameBlock structure.
647 // Note: this is not the size of the SpdySettingsControlFrameBlock class. 647 // Note: this is not the size of the SpdySettingsControlFrameBlock class.
648 static size_t size() { return sizeof(SpdySettingsControlFrameBlock); } 648 static size_t size() { return sizeof(SpdySettingsControlFrameBlock); }
649 649
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 SpdyStreamId stream_id() const { 727 SpdyStreamId stream_id() const {
728 return ntohl(block()->stream_id_) & kStreamIdMask; 728 return ntohl(block()->stream_id_) & kStreamIdMask;
729 } 729 }
730 730
731 void set_stream_id(SpdyStreamId id) { 731 void set_stream_id(SpdyStreamId id) {
732 mutable_block()->stream_id_ = htonl(id & kStreamIdMask); 732 mutable_block()->stream_id_ = htonl(id & kStreamIdMask);
733 } 733 }
734 734
735 // The number of bytes in the header block beyond the frame header length. 735 // The number of bytes in the header block beyond the frame header length.
736 int header_block_len() const { 736 int header_block_len() const {
737 return length() - (size() - SpdyFrame::size()); 737 return length() - (size() - SpdyFrame::kHeaderSize);
738 } 738 }
739 739
740 const char* header_block() const { 740 const char* header_block() const {
741 return reinterpret_cast<const char*>(block()) + size(); 741 return reinterpret_cast<const char*>(block()) + size();
742 } 742 }
743 743
744 // Returns the size of the SpdyHeadersControlFrameBlock structure. 744 // Returns the size of the SpdyHeadersControlFrameBlock structure.
745 // Note: this is not the size of the SpdyHeadersControlFrame class. 745 // Note: this is not the size of the SpdyHeadersControlFrame class.
746 static size_t size() { return sizeof(SpdyHeadersControlFrameBlock); } 746 static size_t size() { return sizeof(SpdyHeadersControlFrameBlock); }
747 747
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 struct SpdyWindowUpdateControlFrameBlock* mutable_block() { 789 struct SpdyWindowUpdateControlFrameBlock* mutable_block() {
790 return static_cast<SpdyWindowUpdateControlFrameBlock*>(frame_); 790 return static_cast<SpdyWindowUpdateControlFrameBlock*>(frame_);
791 } 791 }
792 792
793 DISALLOW_COPY_AND_ASSIGN(SpdyWindowUpdateControlFrame); 793 DISALLOW_COPY_AND_ASSIGN(SpdyWindowUpdateControlFrame);
794 }; 794 };
795 795
796 } // namespace spdy 796 } // namespace spdy
797 797
798 #endif // NET_SPDY_SPDY_PROTOCOL_H_ 798 #endif // NET_SPDY_SPDY_PROTOCOL_H_
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer_test.cc ('k') | net/spdy/spdy_protocol_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698