| 217 | } |
| 218 | |
| 219 | bool 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 |
nothing calls this directly
no test coverage detected