示例#1
0
        protected override IGetOperationResult CreateResult(BinaryResponse response)
        {
            var retval = new GetOperationResult();

            if (response == null)
            {
                return(retval.NotFound(this));
            }

            if (response.StatusCode == 0)
            {
                var flags = NetworkOrderConverter.DecodeUInt32(response.Extra.Array, 0);

                retval.Value = new CacheItem((uint)flags, response.Data.Clone());
            }

            return(retval.WithResponse(response));
        }
        protected override IGetOperationResult CreateResult(BinaryResponse response)
        {
            var retval = new GetOperationResult();

            if (response == null)
            {
                return(retval.NotFound(this));
            }

            if (response.StatusCode == 0)
            {
                var flags = NetworkOrderConverter.DecodeInt32(response.Extra.Array, 0);
                // HACK
                var copy = new PooledSegment(Allocator, response.Data.Count);
                Buffer.BlockCopy(response.Data.Array, response.Data.Offset, copy.Array, 0, copy.Count);
                retval.Value = new CacheItem((uint)flags, copy);
            }

            return(retval.WithResponse(response));
        }