예제 #1
0
        /** <inheritDoc /> */
        public Task <IDictionary <TK, ICacheEntryProcessorResult <TRes> > > InvokeAllAsync <TArg, TRes>(IEnumerable <TK> keys,
                                                                                                        ICacheEntryProcessor <TK, TV, TArg, TRes> processor, TArg arg)
        {
            AsyncInstance.InvokeAll(keys, processor, arg);

            return(AsyncInstance.GetTask(CacheOp.InvokeAll, reader => ReadInvokeAllResults <TRes>(reader.Stream)));
        }
예제 #2
0
        /** <inheritDoc /> */
        public Task <CacheResult <TV> > TryGetAsync(TK key)
        {
            IgniteArgumentCheck.NotNull(key, "key");

            AsyncInstance.Get(key);

            return(AsyncInstance.GetTask(CacheOp.Get, GetCacheResult));
        }
예제 #3
0
        /** <inheritDoc /> */
        public Task <TV> GetAsync(TK key)
        {
            AsyncInstance.Get(key);

            return(AsyncInstance.GetTask(CacheOp.Get, reader =>
            {
                if (reader != null)
                {
                    return reader.ReadObject <TV>();
                }

                throw GetKeyNotFoundException();
            }));
        }
예제 #4
0
        /** <inheritDoc /> */
        public Task <TRes> InvokeAsync <TArg, TRes>(TK key, ICacheEntryProcessor <TK, TV, TArg, TRes> processor, TArg arg)
        {
            AsyncInstance.Invoke(key, processor, arg);

            return(AsyncInstance.GetTask(CacheOp.Invoke, r =>
            {
                if (r == null)
                {
                    return default(TRes);
                }

                var hasError = r.ReadBoolean();

                if (hasError)
                {
                    throw ReadException(r.Stream);
                }

                return r.ReadObject <TRes>();
            }));
        }
예제 #5
0
        /** <inheritDoc /> */
        public Task ClearAsync(TK key)
        {
            AsyncInstance.Clear(key);

            return(AsyncInstance.GetTask(CacheOp.Clear));
        }
예제 #6
0
        /** <inheritDoc /> */
        public Task ClearAsync()
        {
            AsyncInstance.Clear();

            return(AsyncInstance.GetTask());
        }
예제 #7
0
        /** <inheritDoc /> */
        public Task PutAllAsync(IDictionary <TK, TV> vals)
        {
            AsyncInstance.PutAll(vals);

            return(AsyncInstance.GetTask(CacheOp.PutAll));
        }
예제 #8
0
        /** <inheritDoc /> */
        public Task <bool> ContainsKeyAsync(TK key)
        {
            AsyncInstance.ContainsKey(key);

            return(AsyncInstance.GetTask <bool>(CacheOp.ContainsKey));
        }
예제 #9
0
        /** <inheritDoc /> */
        public Task RemoveAllAsync()
        {
            AsyncInstance.RemoveAll();

            return(AsyncInstance.GetTask());
        }
예제 #10
0
        /** <inheritDoc /> */
        public Task <bool> RemoveAsync(TK key, TV val)
        {
            AsyncInstance.Remove(key, val);

            return(AsyncInstance.GetTask <bool>(CacheOp.RemoveBool));
        }
예제 #11
0
        /** <inheritDoc /> */
        public Task <CacheResult <TV> > GetAndRemoveAsync(TK key)
        {
            AsyncInstance.GetAndRemove(key);

            return(AsyncInstance.GetTask(CacheOp.GetAndRemove, GetCacheResult));
        }
예제 #12
0
        /** <inheritDoc /> */
        public Task <CacheResult <TV> > GetAndReplaceAsync(TK key, TV val)
        {
            AsyncInstance.GetAndReplace(key, val);

            return(AsyncInstance.GetTask(CacheOp.GetAndReplace, GetCacheResult));
        }
예제 #13
0
        /** <inheritDoc /> */
        public Task PutAsync(TK key, TV val)
        {
            AsyncInstance.Put(key, val);

            return(AsyncInstance.GetTask(CacheOp.Put));
        }
예제 #14
0
        /** <inheritDoc /> */
        public Task <IDictionary <TK, TV> > GetAllAsync(IEnumerable <TK> keys)
        {
            AsyncInstance.GetAll(keys);

            return(AsyncInstance.GetTask(CacheOp.GetAll, r => r == null ? null : ReadGetAllDictionary(r)));
        }
예제 #15
0
        /** <inheritDoc /> */
        public Task <bool> ContainsKeysAsync(IEnumerable <TK> keys)
        {
            AsyncInstance.ContainsKeys(keys);

            return(AsyncInstance.GetTask <bool>(CacheOp.ContainsKeys));
        }
예제 #16
0
        /** <inheritDoc /> */
        public Task ClearAllAsync(IEnumerable <TK> keys)
        {
            AsyncInstance.ClearAll(keys);

            return(AsyncInstance.GetTask(CacheOp.ClearAll));
        }
예제 #17
0
        /** <inheritDoc /> */
        public Task <bool> RemoveAsync(TK key)
        {
            AsyncInstance.Remove(key);

            return(AsyncInstance.GetTask <bool>(CacheOp.RemoveObj));
        }
예제 #18
0
        /** <inheritDoc /> */
        public Task <bool> PutIfAbsentAsync(TK key, TV val)
        {
            AsyncInstance.PutIfAbsent(key, val);

            return(AsyncInstance.GetTask <bool>(CacheOp.PutIfAbsent));
        }
예제 #19
0
        /** <inheritDoc /> */
        public Task RemoveAllAsync(IEnumerable <TK> keys)
        {
            AsyncInstance.RemoveAll(keys);

            return(AsyncInstance.GetTask(CacheOp.RemoveAll));
        }
예제 #20
0
        /** <inheritDoc /> */
        public Task <CacheResult <TV> > GetAndPutIfAbsentAsync(TK key, TV val)
        {
            AsyncInstance.GetAndPutIfAbsent(key, val);

            return(AsyncInstance.GetTask(CacheOp.GetAndPutIfAbsent, GetCacheResult));
        }
예제 #21
0
        /** <inheritDoc /> */
        public Task <int> GetSizeAsync(params CachePeekMode[] modes)
        {
            AsyncInstance.GetSize(modes);

            return(AsyncInstance.GetTask <int>());
        }
예제 #22
0
        /** <inheritDoc /> */
        public Task <bool> ReplaceAsync(TK key, TV val)
        {
            AsyncInstance.Replace(key, val);

            return(AsyncInstance.GetTask <bool>(CacheOp.Replace2));
        }
예제 #23
0
        /** <inheritDoc /> */
        public Task <bool> ReplaceAsync(TK key, TV oldVal, TV newVal)
        {
            AsyncInstance.Replace(key, oldVal, newVal);

            return(AsyncInstance.GetTask <bool>(CacheOp.Replace3));
        }
예제 #24
0
        /** <inheritDoc /> */
        public Task LocalLoadCacheAsync(ICacheEntryFilter <TK, TV> p, params object[] args)
        {
            AsyncInstance.LocalLoadCache(p, args);

            return(AsyncInstance.GetTask(CacheOp.LocLoadCache));
        }