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

Side by Side Diff: third_party/protobuf/src/google/protobuf/unknown_field_set.h

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 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
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/ 3 // https://developers.google.com/protocol-buffers/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 #include <google/protobuf/stubs/logging.h> 45 #include <google/protobuf/stubs/logging.h>
46 46
47 namespace google { 47 namespace google {
48 namespace protobuf { 48 namespace protobuf {
49 namespace io { 49 namespace io {
50 class CodedInputStream; // coded_stream.h 50 class CodedInputStream; // coded_stream.h
51 class CodedOutputStream; // coded_stream.h 51 class CodedOutputStream; // coded_stream.h
52 class ZeroCopyInputStream; // zero_copy_stream.h 52 class ZeroCopyInputStream; // zero_copy_stream.h
53 } 53 }
54 namespace internal { 54 namespace internal {
55 class InternalMetadataWithArena; // metadata.h
55 class WireFormat; // wire_format.h 56 class WireFormat; // wire_format.h
56 class MessageSetFieldSkipperUsingCord; 57 class MessageSetFieldSkipperUsingCord;
57 // extension_set_heavy.cc 58 // extension_set_heavy.cc
58 } 59 }
59 60
60 class Message; // message.h 61 class Message; // message.h
61 class UnknownField; // below 62 class UnknownField; // below
62 63
63 // An UnknownFieldSet contains fields that were encountered while parsing a 64 // An UnknownFieldSet contains fields that were encountered while parsing a
64 // message but were not defined by its type. Keeping track of these can be 65 // message but were not defined by its type. Keeping track of these can be
(...skipping 20 matching lines...) Expand all
85 86
86 // Is this set empty? 87 // Is this set empty?
87 inline bool empty() const; 88 inline bool empty() const;
88 89
89 // Merge the contents of some other UnknownFieldSet with this one. 90 // Merge the contents of some other UnknownFieldSet with this one.
90 void MergeFrom(const UnknownFieldSet& other); 91 void MergeFrom(const UnknownFieldSet& other);
91 92
92 // Similar to above, but this function will destroy the contents of other. 93 // Similar to above, but this function will destroy the contents of other.
93 void MergeFromAndDestroy(UnknownFieldSet* other); 94 void MergeFromAndDestroy(UnknownFieldSet* other);
94 95
96 // Merge the contents an UnknownFieldSet with the UnknownFieldSet in
97 // *metadata, if there is one. If *metadata doesn't have an UnknownFieldSet
98 // then add one to it and make it be a copy of the first arg.
99 static void MergeToInternalMetdata(
100 const UnknownFieldSet& other,
101 internal::InternalMetadataWithArena* metadata);
102
95 // Swaps the contents of some other UnknownFieldSet with this one. 103 // Swaps the contents of some other UnknownFieldSet with this one.
96 inline void Swap(UnknownFieldSet* x); 104 inline void Swap(UnknownFieldSet* x);
97 105
98 // Computes (an estimate of) the total number of bytes currently used for 106 // Computes (an estimate of) the total number of bytes currently used for
99 // storing the unknown fields in memory. Does NOT include 107 // storing the unknown fields in memory. Does NOT include
100 // sizeof(*this) in the calculation. 108 // sizeof(*this) in the calculation.
101 int SpaceUsedExcludingSelf() const; 109 int SpaceUsedExcludingSelf() const;
102 110
103 // Version of SpaceUsed() including sizeof(*this). 111 // Version of SpaceUsed() including sizeof(*this).
104 int SpaceUsed() const; 112 int SpaceUsed() const;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 class LIBPROTOBUF_EXPORT UnknownField { 176 class LIBPROTOBUF_EXPORT UnknownField {
169 public: 177 public:
170 enum Type { 178 enum Type {
171 TYPE_VARINT, 179 TYPE_VARINT,
172 TYPE_FIXED32, 180 TYPE_FIXED32,
173 TYPE_FIXED64, 181 TYPE_FIXED64,
174 TYPE_LENGTH_DELIMITED, 182 TYPE_LENGTH_DELIMITED,
175 TYPE_GROUP 183 TYPE_GROUP
176 }; 184 };
177 185
178 // The field's tag number, as seen on the wire. 186 // The field's field number, as seen on the wire.
179 inline int number() const; 187 inline int number() const;
180 188
181 // The field type. 189 // The field type.
182 inline Type type() const; 190 inline Type type() const;
183 191
184 // Accessors ------------------------------------------------------- 192 // Accessors -------------------------------------------------------
185 // Each method works only for UnknownFields of the corresponding type. 193 // Each method works only for UnknownFields of the corresponding type.
186 194
187 inline uint64 varint() const; 195 inline uint64 varint() const;
188 inline uint32 fixed32() const; 196 inline uint32 fixed32() const;
189 inline uint64 fixed64() const; 197 inline uint64 fixed64() const;
190 inline const string& length_delimited() const; 198 inline const string& length_delimited() const;
191 inline const UnknownFieldSet& group() const; 199 inline const UnknownFieldSet& group() const;
192 200
193 inline void set_varint(uint64 value); 201 inline void set_varint(uint64 value);
194 inline void set_fixed32(uint32 value); 202 inline void set_fixed32(uint32 value);
195 inline void set_fixed64(uint64 value); 203 inline void set_fixed64(uint64 value);
196 inline void set_length_delimited(const string& value); 204 inline void set_length_delimited(const string& value);
197 inline string* mutable_length_delimited(); 205 inline string* mutable_length_delimited();
198 inline UnknownFieldSet* mutable_group(); 206 inline UnknownFieldSet* mutable_group();
199 207
200 // Serialization API. 208 // Serialization API.
201 // These methods can take advantage of the underlying implementation and may 209 // These methods can take advantage of the underlying implementation and may
202 // archieve a better performance than using getters to retrieve the data and 210 // archieve a better performance than using getters to retrieve the data and
203 // do the serialization yourself. 211 // do the serialization yourself.
204 void SerializeLengthDelimitedNoTag(io::CodedOutputStream* output) const; 212 void SerializeLengthDelimitedNoTag(io::CodedOutputStream* output) const;
205 uint8* SerializeLengthDelimitedNoTagToArray(uint8* target) const; 213 uint8* SerializeLengthDelimitedNoTagToArray(uint8* target) const;
206 214
207 inline int GetLengthDelimitedSize() const; 215 inline size_t GetLengthDelimitedSize() const;
208 216
209 private: 217 private:
210 friend class UnknownFieldSet; 218 friend class UnknownFieldSet;
211 219
212 // If this UnknownField contains a pointer, delete it. 220 // If this UnknownField contains a pointer, delete it.
213 void Delete(); 221 void Delete();
214 222
215 // Reset all the underlying pointers to NULL. A special function to be only 223 // Reset all the underlying pointers to NULL. A special function to be only
216 // used while merging from a temporary UFS. 224 // used while merging from a temporary UFS.
217 void Reset(); 225 void Reset();
(...skipping 16 matching lines...) Expand all
234 uint32 fixed32_; 242 uint32 fixed32_;
235 uint64 fixed64_; 243 uint64 fixed64_;
236 mutable union LengthDelimited length_delimited_; 244 mutable union LengthDelimited length_delimited_;
237 UnknownFieldSet* group_; 245 UnknownFieldSet* group_;
238 }; 246 };
239 }; 247 };
240 248
241 // =================================================================== 249 // ===================================================================
242 // inline implementations 250 // inline implementations
243 251
252 inline UnknownFieldSet::UnknownFieldSet() : fields_(NULL) {}
253
254 inline UnknownFieldSet::~UnknownFieldSet() { Clear(); }
255
256 inline void UnknownFieldSet::ClearAndFreeMemory() { Clear(); }
257
244 inline void UnknownFieldSet::Clear() { 258 inline void UnknownFieldSet::Clear() {
245 if (fields_) { 259 if (fields_ != NULL) {
246 ClearFallback(); 260 ClearFallback();
247 } 261 }
248 } 262 }
249 263
250 inline bool UnknownFieldSet::empty() const { 264 inline bool UnknownFieldSet::empty() const {
251 // Invariant: fields_ is never empty if present. 265 // Invariant: fields_ is never empty if present.
252 return !fields_; 266 return !fields_;
253 } 267 }
254 268
255 inline void UnknownFieldSet::Swap(UnknownFieldSet* x) { 269 inline void UnknownFieldSet::Swap(UnknownFieldSet* x) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 } 331 }
318 inline string* UnknownField::mutable_length_delimited() { 332 inline string* UnknownField::mutable_length_delimited() {
319 assert(type() == TYPE_LENGTH_DELIMITED); 333 assert(type() == TYPE_LENGTH_DELIMITED);
320 return length_delimited_.string_value_; 334 return length_delimited_.string_value_;
321 } 335 }
322 inline UnknownFieldSet* UnknownField::mutable_group() { 336 inline UnknownFieldSet* UnknownField::mutable_group() {
323 assert(type() == TYPE_GROUP); 337 assert(type() == TYPE_GROUP);
324 return group_; 338 return group_;
325 } 339 }
326 340
327 inline int UnknownField::GetLengthDelimitedSize() const { 341 inline size_t UnknownField::GetLengthDelimitedSize() const {
328 GOOGLE_DCHECK_EQ(TYPE_LENGTH_DELIMITED, type()); 342 GOOGLE_DCHECK_EQ(TYPE_LENGTH_DELIMITED, type());
329 return static_cast<int>(length_delimited_.string_value_->size()); 343 return length_delimited_.string_value_->size();
330 } 344 }
331 345
332 inline void UnknownField::SetType(Type type) { 346 inline void UnknownField::SetType(Type type) {
333 type_ = type; 347 type_ = type;
334 } 348 }
335 349
336 350
337 } // namespace protobuf 351 } // namespace protobuf
338 352
339 } // namespace google 353 } // namespace google
340 #endif // GOOGLE_PROTOBUF_UNKNOWN_FIELD_SET_H__ 354 #endif // GOOGLE_PROTOBUF_UNKNOWN_FIELD_SET_H__
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698