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

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

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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 type_traits_.append("PrimitiveTypeTraits< "); 85 type_traits_.append("PrimitiveTypeTraits< ");
86 type_traits_.append(PrimitiveTypeName(descriptor_->cpp_type())); 86 type_traits_.append(PrimitiveTypeName(descriptor_->cpp_type()));
87 type_traits_.append(" >"); 87 type_traits_.append(" >");
88 break; 88 break;
89 } 89 }
90 } 90 }
91 91
92 ExtensionGenerator::~ExtensionGenerator() {} 92 ExtensionGenerator::~ExtensionGenerator() {}
93 93
94 void ExtensionGenerator::GenerateDeclaration(io::Printer* printer) { 94 void ExtensionGenerator::GenerateDeclaration(io::Printer* printer) {
95 map<string, string> vars; 95 std::map<string, string> vars;
96 vars["extendee" ] = ExtendeeClassName(descriptor_); 96 vars["extendee" ] = ExtendeeClassName(descriptor_);
97 vars["number" ] = SimpleItoa(descriptor_->number()); 97 vars["number" ] = SimpleItoa(descriptor_->number());
98 vars["type_traits" ] = type_traits_; 98 vars["type_traits" ] = type_traits_;
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
(...skipping 15 matching lines...) Expand all
121 ); 121 );
122 122
123 } 123 }
124 124
125 void ExtensionGenerator::GenerateDefinition(io::Printer* printer) { 125 void ExtensionGenerator::GenerateDefinition(io::Printer* printer) {
126 // If this is a class member, it needs to be declared in its class scope. 126 // If this is a class member, it needs to be declared in its class scope.
127 string scope = (descriptor_->extension_scope() == NULL) ? "" : 127 string scope = (descriptor_->extension_scope() == NULL) ? "" :
128 ClassName(descriptor_->extension_scope(), false) + "::"; 128 ClassName(descriptor_->extension_scope(), false) + "::";
129 string name = scope + descriptor_->name(); 129 string name = scope + descriptor_->name();
130 130
131 map<string, string> vars; 131 std::map<string, string> vars;
132 vars["extendee" ] = ExtendeeClassName(descriptor_); 132 vars["extendee" ] = ExtendeeClassName(descriptor_);
133 vars["type_traits" ] = type_traits_; 133 vars["type_traits" ] = type_traits_;
134 vars["name" ] = name; 134 vars["name" ] = name;
135 vars["constant_name"] = FieldConstantName(descriptor_); 135 vars["constant_name"] = FieldConstantName(descriptor_);
136 vars["default" ] = DefaultValue(descriptor_); 136 vars["default" ] = DefaultValue(descriptor_);
137 vars["field_type" ] = SimpleItoa(static_cast<int>(descriptor_->type())); 137 vars["field_type" ] = SimpleItoa(static_cast<int>(descriptor_->type()));
138 vars["packed" ] = descriptor_->options().packed() ? "true" : "false"; 138 vars["packed" ] = descriptor_->options().packed() ? "true" : "false";
139 vars["scope" ] = scope; 139 vars["scope" ] = scope;
140 140
141 if (descriptor_->cpp_type() == FieldDescriptor::CPPTYPE_STRING) { 141 if (descriptor_->cpp_type() == FieldDescriptor::CPPTYPE_STRING) {
(...skipping 18 matching lines...) Expand all
160 "#endif\n"); 160 "#endif\n");
161 } 161 }
162 162
163 printer->Print(vars, 163 printer->Print(vars,
164 "::google::protobuf::internal::ExtensionIdentifier< $extendee$,\n" 164 "::google::protobuf::internal::ExtensionIdentifier< $extendee$,\n"
165 " ::google::protobuf::internal::$type_traits$, $field_type$, $packed$ >\n " 165 " ::google::protobuf::internal::$type_traits$, $field_type$, $packed$ >\n "
166 " $name$($constant_name$, $default$);\n"); 166 " $name$($constant_name$, $default$);\n");
167 } 167 }
168 168
169 void ExtensionGenerator::GenerateRegistration(io::Printer* printer) { 169 void ExtensionGenerator::GenerateRegistration(io::Printer* printer) {
170 map<string, string> vars; 170 std::map<string, string> vars;
171 vars["extendee" ] = ExtendeeClassName(descriptor_); 171 vars["extendee" ] = ExtendeeClassName(descriptor_);
172 vars["number" ] = SimpleItoa(descriptor_->number()); 172 vars["number" ] = SimpleItoa(descriptor_->number());
173 vars["field_type" ] = SimpleItoa(static_cast<int>(descriptor_->type())); 173 vars["field_type" ] = SimpleItoa(static_cast<int>(descriptor_->type()));
174 vars["is_repeated"] = descriptor_->is_repeated() ? "true" : "false"; 174 vars["is_repeated"] = descriptor_->is_repeated() ? "true" : "false";
175 vars["is_packed" ] = (descriptor_->is_repeated() && 175 vars["is_packed" ] = (descriptor_->is_repeated() &&
176 descriptor_->options().packed()) 176 descriptor_->options().packed())
177 ? "true" : "false"; 177 ? "true" : "false";
178 178
179 switch (descriptor_->cpp_type()) { 179 switch (descriptor_->cpp_type()) {
180 case FieldDescriptor::CPPTYPE_ENUM: 180 case FieldDescriptor::CPPTYPE_ENUM:
181 printer->Print(vars, 181 printer->Print(
182 "::google::protobuf::internal::ExtensionSet::RegisterEnumExtension(\n" 182 vars,
183 " &$extendee$::default_instance(),\n" 183 "::google::protobuf::internal::ExtensionSet::RegisterEnumExtension(\n"
184 " $number$, $field_type$, $is_repeated$, $is_packed$,\n"); 184 " $extendee$::internal_default_instance(),\n"
185 " $number$, $field_type$, $is_repeated$, $is_packed$,\n");
185 printer->Print( 186 printer->Print(
186 " &$type$_IsValid);\n", 187 " &$type$_IsValid);\n",
187 "type", ClassName(descriptor_->enum_type(), true)); 188 "type", ClassName(descriptor_->enum_type(), true));
188 break; 189 break;
189 case FieldDescriptor::CPPTYPE_MESSAGE: 190 case FieldDescriptor::CPPTYPE_MESSAGE:
190 printer->Print(vars,
191 "::google::protobuf::internal::ExtensionSet::RegisterMessageExtension(\n "
192 " &$extendee$::default_instance(),\n"
193 " $number$, $field_type$, $is_repeated$, $is_packed$,\n");
194 printer->Print( 191 printer->Print(
195 " &$type$::default_instance());\n", 192 vars,
196 "type", ClassName(descriptor_->message_type(), true)); 193 "::google::protobuf::internal::ExtensionSet::RegisterMessageExtension( \n"
194 " $extendee$::internal_default_instance(),\n"
195 " $number$, $field_type$, $is_repeated$, $is_packed$,\n");
196 printer->Print(" $type$::internal_default_instance());\n", "type",
197 ClassName(descriptor_->message_type(), true));
197 break; 198 break;
198 default: 199 default:
199 printer->Print(vars, 200 printer->Print(
200 "::google::protobuf::internal::ExtensionSet::RegisterExtension(\n" 201 vars,
201 " &$extendee$::default_instance(),\n" 202 "::google::protobuf::internal::ExtensionSet::RegisterExtension(\n"
202 " $number$, $field_type$, $is_repeated$, $is_packed$);\n"); 203 " $extendee$::internal_default_instance(),\n"
204 " $number$, $field_type$, $is_repeated$, $is_packed$);\n");
203 break; 205 break;
204 } 206 }
205 } 207 }
206 208
207 } // namespace cpp 209 } // namespace cpp
208 } // namespace compiler 210 } // namespace compiler
209 } // namespace protobuf 211 } // namespace protobuf
210 } // namespace google 212 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698