| 54 | |
| 55 | |
| 56 | bool QueryReader::readOne(UInt8 type, DataWriter& writer) { |
| 57 | |
| 58 | const UInt8* cur = packet.current(); |
| 59 | const UInt8* end = cur+packet.available(); |
| 60 | if (type==OBJECT) { |
| 61 | |
| 62 | // OBJECT |
| 63 | writer.beginObject(); |
| 64 | do { |
| 65 | cur = packet.current(); |
| 66 | writer.writePropertyName(_property.c_str()); |
| 67 | writeValue(valueType(), writer); |
| 68 | |
| 69 | // next! |
| 70 | while (cur<end && *cur != '&') |
| 71 | cur++; |
| 72 | packet.next(cur-packet.current() + (*cur=='&')); |
| 73 | |
| 74 | _type = END; |
| 75 | } while (cur<end && (_type=followingType())==OBJECT); |
| 76 | writer.endObject(); |
| 77 | return true; |
| 78 | } |
| 79 | |
| 80 | writeValue(type, writer); |
| 81 | |
| 82 | // next! |
| 83 | while (cur<end && *cur != '&') |
| 84 | cur++; |
| 85 | packet.next(cur-packet.current() + (*cur=='&')); |
| 86 | _type = END; |
| 87 | return true; |
| 88 | } |
| 89 | |
| 90 | UInt8 QueryReader::valueType() { |
| 91 |
nothing calls this directly
no test coverage detected