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/map_entry.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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 const Descriptor* descriptor_; 77 const Descriptor* descriptor_;
78 const Reflection* reflection_; 78 const Reflection* reflection_;
79 }; 79 };
80 80
81 // MapEntry is the returned google::protobuf::Message when calling AddMessage of 81 // MapEntry is the returned google::protobuf::Message when calling AddMessage of
82 // google::protobuf::Reflection. In order to let it work with generated message 82 // google::protobuf::Reflection. In order to let it work with generated message
83 // reflection, its in-memory type is the same as generated message with the same 83 // reflection, its in-memory type is the same as generated message with the same
84 // fields. However, in order to decide the in-memory type of key/value, we need 84 // fields. However, in order to decide the in-memory type of key/value, we need
85 // to know both their cpp type in generated api and proto type. In 85 // to know both their cpp type in generated api and proto type. In
86 // implmentation, all in-memory types have related wire format functions to 86 // implementation, all in-memory types have related wire format functions to
87 // support except ArenaStringPtr. Therefore, we need to define another type with 87 // support except ArenaStringPtr. Therefore, we need to define another type with
88 // supporting wire format functions. Since this type is only used as return type 88 // supporting wire format functions. Since this type is only used as return type
89 // of MapEntry accessors, it's named MapEntry accessor type. 89 // of MapEntry accessors, it's named MapEntry accessor type.
90 // 90 //
91 // cpp type: the type visible to users in public API. 91 // cpp type: the type visible to users in public API.
92 // proto type: WireFormatLite::FieldType of the field. 92 // proto type: WireFormatLite::FieldType of the field.
93 // in-memory type: type of the data member used to stored this field. 93 // in-memory type: type of the data member used to stored this field.
94 // MapEntry accessor type: type used in MapEntry getters/mutators to access the 94 // MapEntry accessor type: type used in MapEntry getters/mutators to access the
95 // field. 95 // field.
96 // 96 //
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 inline ValueMapEntryAccessorType* mutable_value() { 151 inline ValueMapEntryAccessorType* mutable_value() {
152 return entry_lite_.mutable_value(); 152 return entry_lite_.mutable_value();
153 } 153 }
154 154
155 // implements Message ============================================= 155 // implements Message =============================================
156 156
157 bool MergePartialFromCodedStream(::google::protobuf::io::CodedInputStream* inp ut) { 157 bool MergePartialFromCodedStream(::google::protobuf::io::CodedInputStream* inp ut) {
158 return entry_lite_.MergePartialFromCodedStream(input); 158 return entry_lite_.MergePartialFromCodedStream(input);
159 } 159 }
160 160
161 int ByteSize() const { 161 size_t ByteSizeLong() const {
162 return entry_lite_.ByteSize(); 162 return entry_lite_.ByteSizeLong();
163 } 163 }
164 164
165 void SerializeWithCachedSizes(::google::protobuf::io::CodedOutputStream* outpu t) const { 165 void SerializeWithCachedSizes(::google::protobuf::io::CodedOutputStream* outpu t) const {
166 entry_lite_.SerializeWithCachedSizes(output); 166 entry_lite_.SerializeWithCachedSizes(output);
167 } 167 }
168 168
169 ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf: :uint8* output) const { 169 ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(bool determ inistic,
170 return entry_lite_.SerializeWithCachedSizesToArray(output); 170 ::google::protobuf::uint8* ou tput) const {
171 return entry_lite_.InternalSerializeWithCachedSizesToArray(deterministic,
172 output);
171 } 173 }
172 174
173 int GetCachedSize() const { 175 int GetCachedSize() const {
174 return entry_lite_.GetCachedSize(); 176 return entry_lite_.GetCachedSize();
175 } 177 }
176 178
177 bool IsInitialized() const { 179 bool IsInitialized() const {
178 return entry_lite_.IsInitialized(); 180 return entry_lite_.IsInitialized();
179 } 181 }
180 182
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 Arena* GetArena() const { 237 Arena* GetArena() const {
236 return entry_lite_.GetArena(); 238 return entry_lite_.GetArena();
237 } 239 }
238 240
239 // Create default MapEntry instance for given descriptor. Descriptor has to be 241 // Create default MapEntry instance for given descriptor. Descriptor has to be
240 // given when creating default MapEntry instance because different map field 242 // given when creating default MapEntry instance because different map field
241 // may have the same type and MapEntry class. The given descriptor is needed 243 // may have the same type and MapEntry class. The given descriptor is needed
242 // to distinguish instances of the same MapEntry class. 244 // to distinguish instances of the same MapEntry class.
243 static MapEntry* CreateDefaultInstance(const Descriptor* descriptor) { 245 static MapEntry* CreateDefaultInstance(const Descriptor* descriptor) {
244 MapEntry* entry = new MapEntry; 246 MapEntry* entry = new MapEntry;
247 ReflectionSchema schema = {
248 entry,
249 offsets_,
250 has_bits_,
251 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, entry_lite_._ha s_bits_),
252 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, _internal_metad ata_),
253 -1,
254 NULL,
255 -1,
256 sizeof(MapEntry)};
245 const Reflection* reflection = new GeneratedMessageReflection( 257 const Reflection* reflection = new GeneratedMessageReflection(
246 descriptor, entry, offsets_, 258 descriptor, schema, DescriptorPool::generated_pool(),
247 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, entry_lite_._ha s_bits_), 259 MessageFactory::generated_factory());
248 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, _unknown_fields _), -1,
249 DescriptorPool::generated_pool(),
250 ::google::protobuf::MessageFactory::generated_factory(),
251 sizeof(MapEntry),
252 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, _internal_metad ata_));
253 entry->descriptor_ = descriptor; 260 entry->descriptor_ = descriptor;
254 entry->reflection_ = reflection; 261 entry->reflection_ = reflection;
255 entry->set_default_instance(entry); 262 entry->set_default_instance(entry);
256 entry->InitAsDefaultInstance(); 263 entry->InitAsDefaultInstance();
257 RegisterMapEntryDefaultInstance(entry); 264 RegisterMapEntryDefaultInstance(entry);
258 return entry; 265 return entry;
259 } 266 }
260 267
261 private: 268 private:
262 MapEntry() 269 MapEntry()
263 : _internal_metadata_(NULL), default_instance_(NULL), entry_lite_() {} 270 : _internal_metadata_(NULL), default_instance_(NULL), entry_lite_() {}
264 271
265 explicit MapEntry(Arena* arena) 272 explicit MapEntry(Arena* arena)
266 : _internal_metadata_(arena), 273 : _internal_metadata_(arena),
267 default_instance_(NULL), 274 default_instance_(NULL),
268 entry_lite_(arena) {} 275 entry_lite_(arena) {}
269 276
270 inline Arena* GetArenaNoVirtual() const { 277 inline Arena* GetArenaNoVirtual() const {
271 return entry_lite_.GetArenaNoVirtual(); 278 return entry_lite_.GetArenaNoVirtual();
272 } 279 }
273 280
274 void set_default_instance(MapEntry* default_instance) { 281 void set_default_instance(MapEntry* default_instance) {
275 default_instance_ = default_instance; 282 default_instance_ = default_instance;
276 entry_lite_.set_default_instance(&default_instance->entry_lite_); 283 entry_lite_.set_default_instance(&default_instance->entry_lite_);
277 } 284 }
278 285
279 static int offsets_[2]; 286 static uint32 offsets_[2];
280 UnknownFieldSet _unknown_fields_; 287 static uint32 has_bits_[2];
281 InternalMetadataWithArena _internal_metadata_; 288 InternalMetadataWithArena _internal_metadata_;
282 MapEntry* default_instance_; 289 MapEntry* default_instance_;
283 EntryLiteType entry_lite_; 290 EntryLiteType entry_lite_;
284 291
285 friend class ::google::protobuf::Arena; 292 friend class ::google::protobuf::Arena;
286 typedef void InternalArenaConstructable_; 293 typedef void InternalArenaConstructable_;
287 typedef void DestructorSkippable_; 294 typedef void DestructorSkippable_;
288 template <typename K, typename V, WireFormatLite::FieldType k_wire_type, 295 template <typename K, typename V, WireFormatLite::FieldType k_wire_type,
289 WireFormatLite::FieldType, int default_enum> 296 WireFormatLite::FieldType, int default_enum>
290 friend class internal::MapField; 297 friend class internal::MapField;
291 friend class internal::GeneratedMessageReflection; 298 friend class internal::GeneratedMessageReflection;
292 299
293 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntry); 300 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntry);
294 }; 301 };
295 302
296 template <typename Key, typename Value, WireFormatLite::FieldType kKeyFieldType, 303 template <typename Key, typename Value, WireFormatLite::FieldType kKeyFieldType,
297 WireFormatLite::FieldType kValueFieldType, int default_enum_value> 304 WireFormatLite::FieldType kValueFieldType, int default_enum_value>
298 int MapEntry<Key, Value, kKeyFieldType, kValueFieldType, 305 uint32 MapEntry<Key, Value, kKeyFieldType, kValueFieldType,
299 default_enum_value>::offsets_[2] = { 306 default_enum_value>::offsets_[2] = {
300 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, entry_lite_.key_), 307 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, entry_lite_.key_),
301 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, entry_lite_.value_) , 308 GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MapEntry, entry_lite_.value_) ,
302 }; 309 };
303 310
311 template <typename Key, typename Value, WireFormatLite::FieldType kKeyFieldType,
312 WireFormatLite::FieldType kValueFieldType, int default_enum_value>
313 uint32 MapEntry<Key, Value, kKeyFieldType, kValueFieldType,
314 default_enum_value>::has_bits_[2] = {0, 1};
315
304 } // namespace internal 316 } // namespace internal
305 } // namespace protobuf 317 } // namespace protobuf
306 318
307 } // namespace google 319 } // namespace google
308 #endif // GOOGLE_PROTOBUF_MAP_ENTRY_H__ 320 #endif // GOOGLE_PROTOBUF_MAP_ENTRY_H__
OLDNEW
« no previous file with comments | « third_party/protobuf/src/google/protobuf/map.h ('k') | third_party/protobuf/src/google/protobuf/map_entry_lite.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698