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

Side by Side Diff: net/quic/core/crypto/crypto_handshake_message.h

Issue 2740453006: Add QuicStringPiece which is actually StringPiece. (Closed)
Patch Set: fix compile error and rebase Created 3 years, 9 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #ifndef NET_QUIC_CORE_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_ 5 #ifndef NET_QUIC_CORE_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_
6 #define NET_QUIC_CORE_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_ 6 #define NET_QUIC_CORE_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_
7 7
8 #include <cstddef> 8 #include <cstddef>
9 #include <cstdint> 9 #include <cstdint>
10 #include <memory> 10 #include <memory>
11 #include <string> 11 #include <string>
12 #include <vector> 12 #include <vector>
13 13
14 #include "base/strings/string_piece.h"
15 #include "net/quic/core/quic_packets.h" 14 #include "net/quic/core/quic_packets.h"
16 #include "net/quic/platform/api/quic_export.h" 15 #include "net/quic/platform/api/quic_export.h"
16 #include "net/quic/platform/api/quic_string_piece.h"
17 17
18 namespace net { 18 namespace net {
19 19
20 // An intermediate format of a handshake message that's convenient for a 20 // An intermediate format of a handshake message that's convenient for a
21 // CryptoFramer to serialize from or parse into. 21 // CryptoFramer to serialize from or parse into.
22 class QUIC_EXPORT_PRIVATE CryptoHandshakeMessage { 22 class QUIC_EXPORT_PRIVATE CryptoHandshakeMessage {
23 public: 23 public:
24 CryptoHandshakeMessage(); 24 CryptoHandshakeMessage();
25 CryptoHandshakeMessage(const CryptoHandshakeMessage& other); 25 CryptoHandshakeMessage(const CryptoHandshakeMessage& other);
26 CryptoHandshakeMessage(CryptoHandshakeMessage&& other); 26 CryptoHandshakeMessage(CryptoHandshakeMessage&& other);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 } 59 }
60 } 60 }
61 61
62 // Returns the message tag. 62 // Returns the message tag.
63 QuicTag tag() const { return tag_; } 63 QuicTag tag() const { return tag_; }
64 // Sets the message tag. 64 // Sets the message tag.
65 void set_tag(QuicTag tag) { tag_ = tag; } 65 void set_tag(QuicTag tag) { tag_ = tag; }
66 66
67 const QuicTagValueMap& tag_value_map() const { return tag_value_map_; } 67 const QuicTagValueMap& tag_value_map() const { return tag_value_map_; }
68 68
69 void SetStringPiece(QuicTag tag, base::StringPiece value); 69 void SetStringPiece(QuicTag tag, QuicStringPiece value);
70 70
71 // Erase removes a tag/value, if present, from the message. 71 // Erase removes a tag/value, if present, from the message.
72 void Erase(QuicTag tag); 72 void Erase(QuicTag tag);
73 73
74 // GetTaglist finds an element with the given tag containing zero or more 74 // GetTaglist finds an element with the given tag containing zero or more
75 // tags. If such a tag doesn't exist, it returns an error code. Otherwise it 75 // tags. If such a tag doesn't exist, it returns an error code. Otherwise it
76 // sets |out_tags| and |out_len| to point to the array of tags and returns 76 // sets |out_tags| and |out_len| to point to the array of tags and returns
77 // QUIC_NO_ERROR. The array points into the CryptoHandshakeMessage and is 77 // QUIC_NO_ERROR. The array points into the CryptoHandshakeMessage and is
78 // valid only for as long as the CryptoHandshakeMessage exists and is not 78 // valid only for as long as the CryptoHandshakeMessage exists and is not
79 // modified. 79 // modified.
80 QuicErrorCode GetTaglist(QuicTag tag, 80 QuicErrorCode GetTaglist(QuicTag tag,
81 const QuicTag** out_tags, 81 const QuicTag** out_tags,
82 size_t* out_len) const; 82 size_t* out_len) const;
83 83
84 bool GetStringPiece(QuicTag tag, base::StringPiece* out) const; 84 bool GetStringPiece(QuicTag tag, QuicStringPiece* out) const;
85 bool HasStringPiece(QuicTag tag) const; 85 bool HasStringPiece(QuicTag tag) const;
86 86
87 // GetNthValue24 interprets the value with the given tag to be a series of 87 // GetNthValue24 interprets the value with the given tag to be a series of
88 // 24-bit, length prefixed values and it returns the subvalue with the given 88 // 24-bit, length prefixed values and it returns the subvalue with the given
89 // index. 89 // index.
90 QuicErrorCode GetNthValue24(QuicTag tag, 90 QuicErrorCode GetNthValue24(QuicTag tag,
91 unsigned index, 91 unsigned index,
92 base::StringPiece* out) const; 92 QuicStringPiece* out) const;
93 QuicErrorCode GetUint32(QuicTag tag, uint32_t* out) const; 93 QuicErrorCode GetUint32(QuicTag tag, uint32_t* out) const;
94 QuicErrorCode GetUint64(QuicTag tag, uint64_t* out) const; 94 QuicErrorCode GetUint64(QuicTag tag, uint64_t* out) const;
95 95
96 // size returns 4 (message tag) + 2 (uint16_t, number of entries) + 96 // size returns 4 (message tag) + 2 (uint16_t, number of entries) +
97 // (4 (tag) + 4 (end offset))*tag_value_map_.size() + ∑ value sizes. 97 // (4 (tag) + 4 (end offset))*tag_value_map_.size() + ∑ value sizes.
98 size_t size() const; 98 size_t size() const;
99 99
100 // set_minimum_size sets the minimum number of bytes that the message should 100 // set_minimum_size sets the minimum number of bytes that the message should
101 // consume. The CryptoFramer will add a PAD tag as needed when serializing in 101 // consume. The CryptoFramer will add a PAD tag as needed when serializing in
102 // order to ensure this. Setting a value of 0 disables padding. 102 // order to ensure this. Setting a value of 0 disables padding.
(...skipping 27 matching lines...) Expand all
130 size_t minimum_size_; 130 size_t minimum_size_;
131 131
132 // The serialized form of the handshake message. This member is constructed 132 // The serialized form of the handshake message. This member is constructed
133 // lasily. 133 // lasily.
134 mutable std::unique_ptr<QuicData> serialized_; 134 mutable std::unique_ptr<QuicData> serialized_;
135 }; 135 };
136 136
137 } // namespace net 137 } // namespace net
138 138
139 #endif // NET_QUIC_CORE_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_ 139 #endif // NET_QUIC_CORE_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_
OLDNEW
« no previous file with comments | « net/quic/core/crypto/crypto_framer_test.cc ('k') | net/quic/core/crypto/crypto_handshake_message.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698