@Override
      public void gotData(String k, int flags, byte[] data) {
        assert key.equals(k) : "Wrong key returned";
        val =
            tcService.decode(tc, new CachedData(flags, data, tc.getMaxSize()));
      }
Get the given key asynchronously.

@param <T>
@param key the key to fetch
@param tc the transcoder to serialize and unserialize value
@return a future that will hold the return value of the fetch
@throws IllegalStateException in the rare circumstance where queue is too
          full to accept any more requests
src/main/java/net/spy/memcached/MemcachedClient.java