| 222 | } |
| 223 | |
| 224 | foreach (const FieldDescriptor* field, fields) { |
| 225 | if (field->is_repeated() && !field->is_map()) { |
| 226 | writer->field( |
| 227 | lowerSlaveToAgent(field->name()), |
| 228 | [&field, &reflection, &message](JSON::ArrayWriter* writer) { |
| 229 | int fieldSize = reflection->FieldSize(message, field); |
| 230 | for (int i = 0; i < fieldSize; ++i) { |
| 231 | switch (field->cpp_type()) { |
| 232 | case FieldDescriptor::CPPTYPE_BOOL: |
| 233 | writer->element( |
| 234 | reflection->GetRepeatedBool(message, field, i)); |
| 235 | break; |
| 236 | case FieldDescriptor::CPPTYPE_INT32: |
| 237 | writer->element( |
| 238 | reflection->GetRepeatedInt32(message, field, i)); |
| 239 | break; |
| 240 | case FieldDescriptor::CPPTYPE_INT64: |
| 241 | writer->element( |
| 242 | reflection->GetRepeatedInt64(message, field, i)); |
| 243 | break; |
| 244 | case FieldDescriptor::CPPTYPE_UINT32: |
| 245 | writer->element( |
| 246 | reflection->GetRepeatedUInt32(message, field, i)); |
| 247 | break; |
| 248 | case FieldDescriptor::CPPTYPE_UINT64: |
| 249 | writer->element( |
| 250 | reflection->GetRepeatedUInt64(message, field, i)); |
| 251 | break; |
| 252 | case FieldDescriptor::CPPTYPE_FLOAT: |
| 253 | writer->element( |
| 254 | reflection->GetRepeatedFloat(message, field, i)); |
| 255 | break; |
| 256 | case FieldDescriptor::CPPTYPE_DOUBLE: |
| 257 | writer->element( |
| 258 | reflection->GetRepeatedDouble(message, field, i)); |
| 259 | break; |
| 260 | case FieldDescriptor::CPPTYPE_MESSAGE: |
| 261 | writer->element( |
| 262 | asV1Protobuf( |
| 263 | reflection->GetRepeatedMessage(message, field, i))); |
| 264 | break; |
| 265 | case FieldDescriptor::CPPTYPE_ENUM: |
| 266 | writer->element( |
| 267 | upperSlaveToAgent( |
| 268 | reflection->GetRepeatedEnum(message, field, i) |
| 269 | ->name())); |
| 270 | break; |
| 271 | case FieldDescriptor::CPPTYPE_STRING: |
| 272 | const std::string& s = reflection->GetRepeatedStringReference( |
| 273 | message, field, i, nullptr); |
| 274 | if (field->type() == FieldDescriptor::TYPE_BYTES) { |
| 275 | writer->element(base64::encode(s)); |
| 276 | } else { |
| 277 | writer->element(s); |
| 278 | } |
| 279 | break; |
| 280 | } |
| 281 | } |
nothing calls this directly
no test coverage detected