Example #1
0
        public unsafe ReleaseCacheItem Get(JsonOperationContext context, string url, out string changeVector, out BlittableJsonReaderObject obj)
        {
            if (_items.TryGetValue(url, out var item))
            {
                if (item.AddRef())
                {
                    var releaser = new ReleaseCacheItem(item);

                    changeVector = item.ChangeVector;

                    obj = item.Ptr != null ? new BlittableJsonReaderObject(item.Ptr, item.Size, context) : null;
#if DEBUG
                    if (obj != null)
                    {
                        obj.BlittableValidation();
                    }
#endif
                    if (Logger.IsInfoEnabled)
                    {
                        Logger.Info($"Url returned from the cache with etag: {changeVector}. {url}.");
                    }

                    return(releaser);
                }
            }

            obj          = null;
            changeVector = null;
            return(new ReleaseCacheItem());
        }
Example #2
0
        public unsafe ReleaseCacheItem Get(JsonOperationContext context, string url, out long etag, out BlittableJsonReaderObject obj)
        {
            HttpCacheItem item;

            if (_items.TryGetValue(url, out item))
            {
                if (item.AddRef())
                {
                    var releaser = new ReleaseCacheItem
                    {
                        Item = item
                    };
                    etag = item.Etag;
                    obj  = new BlittableJsonReaderObject(item.Ptr, item.Size, context);
                    if (Logger.IsInfoEnabled)
                    {
                        Logger.Info($"Url returned from the cache with etag: {etag}. {url}.");
                    }
                    return(releaser);
                }
            }
            obj  = null;
            etag = 0;
            return(new ReleaseCacheItem());
        }