| 403 | |
| 404 | |
| 405 | class TJSONProtocol(TJSONProtocolBase): |
| 406 | |
| 407 | def readMessageBegin(self): |
| 408 | self.resetReadContext() |
| 409 | self.readJSONArrayStart() |
| 410 | if self.readJSONInteger() != VERSION: |
| 411 | raise TProtocolException(TProtocolException.BAD_VERSION, |
| 412 | "Message contained bad version.") |
| 413 | name = self.readJSONString(False) |
| 414 | typen = self.readJSONInteger() |
| 415 | seqid = self.readJSONInteger() |
| 416 | return (name, typen, seqid) |
| 417 | |
| 418 | def readMessageEnd(self): |
| 419 | self.readJSONArrayEnd() |
| 420 | |
| 421 | def readStructBegin(self): |
| 422 | self.readJSONObjectStart() |
| 423 | |
| 424 | def readStructEnd(self): |
| 425 | self.readJSONObjectEnd() |
| 426 | |
| 427 | def readFieldBegin(self): |
| 428 | character = self.reader.peek() |
| 429 | ttype = 0 |
| 430 | id = 0 |
| 431 | if character == RBRACE: |
| 432 | ttype = TType.STOP |
| 433 | else: |
| 434 | id = self.readJSONInteger() |
| 435 | self.readJSONObjectStart() |
| 436 | ttype = JTYPES[self.readJSONString(False)] |
| 437 | return (None, ttype, id) |
| 438 | |
| 439 | def readFieldEnd(self): |
| 440 | self.readJSONObjectEnd() |
| 441 | |
| 442 | def readMapBegin(self): |
| 443 | self.readJSONArrayStart() |
| 444 | keyType = JTYPES[self.readJSONString(False)] |
| 445 | valueType = JTYPES[self.readJSONString(False)] |
| 446 | size = self.readJSONInteger() |
| 447 | self.readJSONObjectStart() |
| 448 | return (keyType, valueType, size) |
| 449 | |
| 450 | def readMapEnd(self): |
| 451 | self.readJSONObjectEnd() |
| 452 | self.readJSONArrayEnd() |
| 453 | |
| 454 | def readCollectionBegin(self): |
| 455 | self.readJSONArrayStart() |
| 456 | elemType = JTYPES[self.readJSONString(False)] |
| 457 | size = self.readJSONInteger() |
| 458 | return (elemType, size) |
| 459 | readListBegin = readCollectionBegin |
| 460 | readSetBegin = readCollectionBegin |
| 461 | |
| 462 | def readCollectionEnd(self): |
no outgoing calls