public void Reset()
 {
     type         = RequestType.READ;
     hash         = null;
     readCallback = null;
     success      = false;
     data         = null;
     maxAgeMillis = -1;
 }
        /// <summary>
        /// Requests a read from the cache.
        /// </summary>
        /// <param name="key">The key to read.</param>
        /// <param name="maxAgeMillis">Maximum age for a cache hit. If the copy we have on cache is older
        /// than this, the request will fail. Use -1 to mean "any age".</param>
        /// <param name="callback">The callback that is to be called (asynchronously) when the read operation
        /// finishes. This callback will be called on the MAIN thread.</param>
        public void RequestRead(string key, long maxAgeMillis, CacheReadCallback callback)
        {
            string       hash = GetHash(key);
            CacheRequest request;

            if (!requestsRecyclePool.Dequeue(out request))
            {
                request = new CacheRequest();
            }
            request.type         = RequestType.READ;
            request.key          = key;
            request.hash         = hash;
            request.readCallback = callback;
            request.maxAgeMillis = maxAgeMillis;
            PtDebug.LogVerboseFormat("PBC: enqueing READ request for {0}", key);
            requestsPendingWork.Enqueue(request);
        }