MCPcopy Create free account
hub / github.com/apache/thrift / _readMap

Method _readMap

lib/php/lib/Exception/TException.php:70–136  ·  view source on GitHub ↗
(&$var, $spec, $input)

Source from the content-addressed store, hash-verified

68 );
69
70 private function _readMap(&$var, $spec, $input)
71 {
72 $xfer = 0;
73 $ktype = $spec['ktype'];
74 $vtype = $spec['vtype'];
75 $kread = $vread = null;
76 if (isset(TBase::$tmethod[$ktype])) {
77 $kread = 'read' . TBase::$tmethod[$ktype];
78 } else {
79 $kspec = $spec['key'];
80 }
81 if (isset(TBase::$tmethod[$vtype])) {
82 $vread = 'read' . TBase::$tmethod[$vtype];
83 } else {
84 $vspec = $spec['val'];
85 }
86 $var = array();
87 $_ktype = $_vtype = $size = 0;
88 $xfer += $input->readMapBegin($_ktype, $_vtype, $size);
89 for ($i = 0; $i < $size; ++$i) {
90 $key = $val = null;
91 if ($kread !== null) {
92 $xfer += $input->$kread($key);
93 } else {
94 switch ($ktype) {
95 case TType::STRUCT:
96 $class = $kspec['class'];
97 $key = new $class();
98 $xfer += $key->read($input);
99 break;
100 case TType::MAP:
101 $xfer += $this->_readMap($key, $kspec, $input);
102 break;
103 case TType::LST:
104 $xfer += $this->_readList($key, $kspec, $input, false);
105 break;
106 case TType::SET:
107 $xfer += $this->_readList($key, $kspec, $input, true);
108 break;
109 }
110 }
111 if ($vread !== null) {
112 $xfer += $input->$vread($val);
113 } else {
114 switch ($vtype) {
115 case TType::STRUCT:
116 $class = $vspec['class'];
117 $val = new $class();
118 $xfer += $val->read($input);
119 break;
120 case TType::MAP:
121 $xfer += $this->_readMap($val, $vspec, $input);
122 break;
123 case TType::LST:
124 $xfer += $this->_readList($val, $vspec, $input, false);
125 break;
126 case TType::SET:
127 $xfer += $this->_readList($val, $vspec, $input, true);

Callers 2

_readListMethod · 0.95
_readMethod · 0.95

Calls 4

_readListMethod · 0.95
readMapBeginMethod · 0.65
readMethod · 0.65
readMapEndMethod · 0.65

Tested by

no test coverage detected