Esempio n. 1
0
        protected override IGetOperationResult PerformTryGet(string key, out ulong cas, out object value)
        {
            string              str       = base.KeyTransformer.Transform(key);
            IMemcachedNode      startNode = base.Pool.Locate(str);
            IGetOperationResult source    = base.GetOperationResultFactory.Create();

            if (startNode != null)
            {
                IGetOperation    op      = base.Pool.OperationFactory.Get(str);
                IOperationResult result2 = this.ExecuteWithRedirect(startNode, op);
                if (result2.Success)
                {
                    source.Value = value = op.Result.Data; // base.Transcoder.Deserialize(op.Result);
                    source.Cas   = cas = op.CasValue;
                    if (base.PerformanceMonitor != null)
                    {
                        base.PerformanceMonitor.Get(1, true);
                    }
                    source.Pass(null);
                    return(source);
                }
                value = null;
                cas   = 0L;
                result2.Combine(source);
                return(source);
            }
            value = null;
            cas   = 0L;
            if (base.PerformanceMonitor != null)
            {
                base.PerformanceMonitor.Get(1, false);
            }
            source.Fail("Unable to locate node", null);
            return(source);
        }