@Override public TraceContextOrSamplingFlags extract(C carrier) { TraceContextOrSamplingFlags result = delegate.extract(carrier); // always allocate in case fields are added late Extra fields = propagation.factory.extraFactory.create(); for (int i = 0, length = propagation.keys.size(); i < length; i++) { String maybeValue = getter.get(carrier, propagation.keys.get(i)); if (maybeValue == null) continue; fields.put(propagation.factory.keyToField[i], maybeValue); } return result.toBuilder().addExtra(fields).build(); } }
@Override public TraceContextOrSamplingFlags extract(C carrier) { TraceContextOrSamplingFlags result = delegate.extract(carrier); // always allocate in case fields are added late Extra fields = propagation.factory.extraFactory.create(); for (int i = 0, length = propagation.keys.size(); i < length; i++) { String maybeValue = getter.get(carrier, propagation.keys.get(i)); if (maybeValue == null) continue; fields.put(propagation.factory.keyToField[i], maybeValue); } return result.toBuilder().addExtra(fields).build(); } }
@Override public TraceContextOrSamplingFlags extract(C carrier) { Tags tags = null; if (carrier instanceof Metadata) { tags = extractTags(((Metadata) carrier).get(GRPC_TAGS_BIN)); byte[] bytes = ((Metadata) carrier).get(GRPC_TRACE_BIN); if (bytes != null) { TraceContext maybeContext = TraceContextBinaryFormat.parseBytes(bytes, tags); if (maybeContext != null) return TraceContextOrSamplingFlags.create(maybeContext); } } TraceContextOrSamplingFlags result = delegate.extract(carrier); if (tags == null) return result; return result.toBuilder().addExtra(tags).build(); } }
@Override public TraceContextOrSamplingFlags extract(C carrier) { Tags tags = null; if (carrier instanceof Metadata) { tags = extractTags(((Metadata) carrier).get(GRPC_TAGS_BIN)); byte[] bytes = ((Metadata) carrier).get(GRPC_TRACE_BIN); if (bytes != null) { TraceContext maybeContext = TraceContextBinaryFormat.parseBytes(bytes, tags); if (maybeContext != null) return TraceContextOrSamplingFlags.create(maybeContext); } } TraceContextOrSamplingFlags result = delegate.extract(carrier); if (tags == null) return result; return result.toBuilder().addExtra(tags).build(); } }