| 2388 | } |
| 2389 | |
| 2390 | void readUserAttributes(ThriftBinaryBufferReader& r, UserAttributes& s) { |
| 2391 | QString fname; |
| 2392 | ThriftFieldType::type fieldType; |
| 2393 | qint16 fieldId; |
| 2394 | r.readStructBegin(fname); |
| 2395 | while(true) { |
| 2396 | r.readFieldBegin(fname, fieldType, fieldId); |
| 2397 | if(fieldType == ThriftFieldType::T_STOP) break; |
| 2398 | if(fieldId == 1) { |
| 2399 | if(fieldType == ThriftFieldType::T_STRING) { |
| 2400 | QString v; |
| 2401 | r.readString(v); |
| 2402 | s.defaultLocationName = v; |
| 2403 | } else { |
| 2404 | r.skip(fieldType); |
| 2405 | } |
| 2406 | } else |
| 2407 | if(fieldId == 2) { |
| 2408 | if(fieldType == ThriftFieldType::T_DOUBLE) { |
| 2409 | double v; |
| 2410 | r.readDouble(v); |
| 2411 | s.defaultLatitude = v; |
| 2412 | } else { |
| 2413 | r.skip(fieldType); |
| 2414 | } |
| 2415 | } else |
| 2416 | if(fieldId == 3) { |
| 2417 | if(fieldType == ThriftFieldType::T_DOUBLE) { |
| 2418 | double v; |
| 2419 | r.readDouble(v); |
| 2420 | s.defaultLongitude = v; |
| 2421 | } else { |
| 2422 | r.skip(fieldType); |
| 2423 | } |
| 2424 | } else |
| 2425 | if(fieldId == 4) { |
| 2426 | if(fieldType == ThriftFieldType::T_BOOL) { |
| 2427 | bool v; |
| 2428 | r.readBool(v); |
| 2429 | s.preactivation = v; |
| 2430 | } else { |
| 2431 | r.skip(fieldType); |
| 2432 | } |
| 2433 | } else |
| 2434 | if(fieldId == 5) { |
| 2435 | if(fieldType == ThriftFieldType::T_LIST) { |
| 2436 | QStringList v; |
| 2437 | quint32 size; |
| 2438 | ThriftFieldType::type elemType; |
| 2439 | r.readListBegin(elemType, size); |
| 2440 | v.reserve(size); |
| 2441 | if(elemType != ThriftFieldType::T_STRING) throw ThriftException(ThriftException::Type::INVALID_DATA, "Incorrect list type (UserAttributes.viewedPromotions)"); |
| 2442 | for(quint32 i = 0; i < size; i++) { |
| 2443 | QString elem; |
| 2444 | r.readString(elem); |
| 2445 | v.append(elem); |
| 2446 | } |
| 2447 | r.readListEnd(); |
no test coverage detected