class TracedCommand<K, V, T> extends CommandWrapper<K, V, T> implements TraceContextProvider {

    private final TraceContext traceContext;

    private Tracer.Span span;

    public TracedCommand(RedisCommand<K, V, T> command, TraceContext traceContext) {
        super(command);
        this.traceContext = traceContext;
    }

    @Override
    public TraceContext getTraceContext() {
        return traceContext;
    }

    public Tracer.Span getSpan() {
        return span;
    }

    public void setSpan(Tracer.Span span) {
        this.span = span;
    }

    @Override
    public void encode(ByteBuf buf) {<FILL_FUNCTION_BODY>}

}


        if (span != null) {
            span.annotate("redis.encode.start");
        }
        super.encode(buf);

        if (span != null) {
            span.annotate("redis.encode.end");
        }
    
<methods>public void <init>(RedisCommand<K,V,T>) ,public void cancel() ,public void complete() ,public boolean completeExceptionally(java.lang.Throwable) ,public void encode(ByteBuf) ,public boolean equals(java.lang.Object) ,public CommandArgs<K,V> getArgs() ,public RedisCommand<K,V,T> getDelegate() ,public CommandOutput<K,V,T> getOutput() ,public io.lettuce.core.protocol.ProtocolKeyword getType() ,public int hashCode() ,public boolean isCancelled() ,public boolean isDone() ,public void onComplete(Consumer<? super T>) ,public void onComplete(BiConsumer<? super T,java.lang.Throwable>) ,public void setOutput(CommandOutput<K,V,T>) ,public java.lang.String toString() ,public static RedisCommand<K,V,T> unwrap(RedisCommand<K,V,T>) ,public static R unwrap(RedisCommand<K,V,T>, Class<R>) <variables>private static final java.lang.Object[] COMPLETE,private static final java.lang.Object[] EMPTY,private static final AtomicReferenceFieldUpdater<CommandWrapper#RAW,java.lang.Object[]> ONCOMPLETE,protected final non-sealed RedisCommand<K,V,T> command,private volatile java.lang.Object[] onComplete