code: public static final ByteChannel traceableChannel(ByteChannel channel, Consumer<ByteBuffer> tracer)
      {
          return new TraceableByteChannel(channel, tracer);
      }
docs: Returns a ByteChannel having feature that for every read/write method the
  tracer function is called with read/write data between position and limit.
  <p>
  This is planned to support calculating digestives.
  @param channel
  @param tracer
  @return