MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / ParseFast

Method ParseFast

tensorflow/core/distributed_runtime/tensor_coding.cc:219–278  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

217}
218
219bool TensorResponse::ParseFast(Source* source) {
220 protobuf::io::CodedInputStream input(source->contents());
221 input.SetTotalBytesLimit(INT_MAX, INT_MAX); // Unlimited
222 while (true) {
223 auto p = input.ReadTagWithCutoff(127);
224 int tag = GetTagFieldNumber(p.first);
225 WireType wt = GetTagWireType(p.first);
226 if (!p.second) {
227 return (tag == 0);
228 }
229 switch (tag) {
230 case RecvTensorResponse::kTensorFieldNumber: {
231 if (wt != WIRETYPE_LENGTH_DELIMITED) return false;
232
233 int length;
234 if (!ReadVarintSizeAsInt(&input, &length)) return false;
235 std::pair<protobuf::io::CodedInputStream::Limit, int> p =
236 input.IncrementRecursionDepthAndPushLimit(length);
237 if (p.second < 0 ||
238 !ParseTensorSubmessage(&input, meta_.mutable_tensor())) {
239 return false;
240 }
241 if (!input.DecrementRecursionDepthAndPopLimit(p.first)) {
242 return false;
243 }
244 break;
245 }
246 case RecvTensorResponse::kIsDeadFieldNumber: {
247 uint32 v;
248 if ((wt != WIRETYPE_VARINT) || !input.ReadVarint32(&v)) return false;
249 meta_.set_is_dead(v != 0);
250 break;
251 }
252 case RecvTensorResponse::kSendStartMicrosFieldNumber: {
253 protobuf_uint64 v;
254 if ((wt != WIRETYPE_VARINT) || !input.ReadVarint64(&v)) return false;
255 meta_.set_send_start_micros(static_cast<int64>(v));
256 break;
257 }
258 case RecvTensorResponse::kTransportOptionsFieldNumber: {
259 if ((wt != WIRETYPE_LENGTH_DELIMITED) ||
260 !ReadNestedMessage(&input, meta_.mutable_transport_options()))
261 return false;
262 break;
263 }
264 case RecvTensorResponse::kRequireAckFieldNumber: {
265 uint32 v;
266 if ((wt != WIRETYPE_VARINT) || !input.ReadVarint32(&v)) return false;
267 meta_.set_require_ack(v != 0);
268 break;
269 }
270 default: {
271 // Unknown tag, so don't handle we can't handle on the fast path
272 return false;
273 }
274 }
275 }
276

Callers

nothing calls this directly

Calls 8

GetTagFieldNumberFunction · 0.85
GetTagWireTypeFunction · 0.85
ReadVarintSizeAsIntFunction · 0.85
ReadNestedMessageFunction · 0.85
ReadVarint32Method · 0.80
ReadVarint64Method · 0.80
contentsMethod · 0.45
is_deadMethod · 0.45

Tested by

no test coverage detected