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

Side by Side Diff: third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc

Issue 21208003: Update protobuf to r428, part 1. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 4 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 | Annotate | Revision Log
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 // http://code.google.com/p/protobuf/ 3 // http://code.google.com/p/protobuf/
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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 // extends. This function is used in the Google-internal code to handle some 50 // extends. This function is used in the Google-internal code to handle some
51 // legacy cases. 51 // legacy cases.
52 string ExtendeeClassName(const FieldDescriptor* descriptor) { 52 string ExtendeeClassName(const FieldDescriptor* descriptor) {
53 const Descriptor* extendee = descriptor->containing_type(); 53 const Descriptor* extendee = descriptor->containing_type();
54 return ClassName(extendee, true); 54 return ClassName(extendee, true);
55 } 55 }
56 56
57 } // anonymous namespace 57 } // anonymous namespace
58 58
59 ExtensionGenerator::ExtensionGenerator(const FieldDescriptor* descriptor, 59 ExtensionGenerator::ExtensionGenerator(const FieldDescriptor* descriptor,
60 const string& dllexport_decl) 60 const Options& options)
61 : descriptor_(descriptor), 61 : descriptor_(descriptor),
62 dllexport_decl_(dllexport_decl) { 62 options_(options) {
63 // Construct type_traits_. 63 // Construct type_traits_.
64 if (descriptor_->is_repeated()) { 64 if (descriptor_->is_repeated()) {
65 type_traits_ = "Repeated"; 65 type_traits_ = "Repeated";
66 } 66 }
67 67
68 switch (descriptor_->cpp_type()) { 68 switch (descriptor_->cpp_type()) {
69 case FieldDescriptor::CPPTYPE_ENUM: 69 case FieldDescriptor::CPPTYPE_ENUM:
70 type_traits_.append("EnumTypeTraits< "); 70 type_traits_.append("EnumTypeTraits< ");
71 type_traits_.append(ClassName(descriptor_->enum_type(), true)); 71 type_traits_.append(ClassName(descriptor_->enum_type(), true));
72 type_traits_.append(", "); 72 type_traits_.append(", ");
(...skipping 26 matching lines...) Expand all
99 vars["name" ] = descriptor_->name(); 99 vars["name" ] = descriptor_->name();
100 vars["field_type" ] = SimpleItoa(static_cast<int>(descriptor_->type())); 100 vars["field_type" ] = SimpleItoa(static_cast<int>(descriptor_->type()));
101 vars["packed" ] = descriptor_->options().packed() ? "true" : "false"; 101 vars["packed" ] = descriptor_->options().packed() ? "true" : "false";
102 vars["constant_name"] = FieldConstantName(descriptor_); 102 vars["constant_name"] = FieldConstantName(descriptor_);
103 103
104 // If this is a class member, it needs to be declared "static". Otherwise, 104 // If this is a class member, it needs to be declared "static". Otherwise,
105 // it needs to be "extern". In the latter case, it also needs the DLL 105 // it needs to be "extern". In the latter case, it also needs the DLL
106 // export/import specifier. 106 // export/import specifier.
107 if (descriptor_->extension_scope() == NULL) { 107 if (descriptor_->extension_scope() == NULL) {
108 vars["qualifier"] = "extern"; 108 vars["qualifier"] = "extern";
109 if (!dllexport_decl_.empty()) { 109 if (!options_.dllexport_decl.empty()) {
110 vars["qualifier"] = dllexport_decl_ + " " + vars["qualifier"]; 110 vars["qualifier"] = options_.dllexport_decl + " " + vars["qualifier"];
111 } 111 }
112 } else { 112 } else {
113 vars["qualifier"] = "static"; 113 vars["qualifier"] = "static";
114 } 114 }
115 115
116 printer->Print(vars, 116 printer->Print(vars,
117 "static const int $constant_name$ = $number$;\n" 117 "static const int $constant_name$ = $number$;\n"
118 "$qualifier$ ::google::protobuf::internal::ExtensionIdentifier< $extendee$,\ n" 118 "$qualifier$ ::google::protobuf::internal::ExtensionIdentifier< $extendee$,\ n"
119 " ::google::protobuf::internal::$type_traits$, $field_type$, $packed$ >\n " 119 " ::google::protobuf::internal::$type_traits$, $field_type$, $packed$ >\n "
120 " $name$;\n" 120 " $name$;\n"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 " &$extendee$::default_instance(),\n" 201 " &$extendee$::default_instance(),\n"
202 " $number$, $field_type$, $is_repeated$, $is_packed$);\n"); 202 " $number$, $field_type$, $is_repeated$, $is_packed$);\n");
203 break; 203 break;
204 } 204 }
205 } 205 }
206 206
207 } // namespace cpp 207 } // namespace cpp
208 } // namespace compiler 208 } // namespace compiler
209 } // namespace protobuf 209 } // namespace protobuf
210 } // namespace google 210 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698