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

Method _readMap

lib/php/lib/Base/TBase.php:69–135  ·  view source on GitHub ↗
(&$var, $spec, $input)

Source from the content-addressed store, hash-verified

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