示例#1
0
        public Task <IGetResult> GetAndLock(string id, TimeSpan expiration, Action <GetAndLockOptions> configureOptions)
        {
            var options = new GetAndLockOptions();

            configureOptions(options);

            return(GetAndLock(id, expiration, options));
        }
示例#2
0
        public static Task <IGetResult> GetAndLockAsync(this ICollection collection, string id, TimeSpan expiration,
                                                        Action <GetAndLockOptions> configureOptions)
        {
            var options = new GetAndLockOptions();

            configureOptions(options);

            return(collection.GetAndLockAsync(id, expiration, options));
        }
示例#3
0
        public Task <IGetResult> GetAndLock(string id, TimeSpan expiration, TimeSpan?timeout = null,
                                            CancellationToken token = default(CancellationToken))
        {
            var options = new GetAndLockOptions
            {
                Timeout = timeout,
                Token   = token
            };

            return(GetAndLock(id, expiration, options));
        }
示例#4
0
        public async Task <IGetResult> GetAndLock(string id, TimeSpan expiration, GetAndLockOptions options)
        {
            var getAndLockOp = new GetL <byte[]>
            {
                Key        = id,
                Cid        = Cid,
                Expiration = expiration.ToTtl()
            };

            await ExecuteOp(getAndLockOp, options.Token, options.Timeout);

            return(new GetResult(getAndLockOp.Data.ToArray(), _transcoder));
        }