Example #1
0
        //MemStache<X, IMemStacheItem<X>>
        public static dynamic Create <X>(StacheItemEnum category = StacheItemEnum.stchBasic,
                                         Func <string, string, Task> saveCacheItemData = null,
                                         Func <string, Task <X> > getCacheItemData     = null)
            where X : class
        {
            try
            {
                //MemStache<X, IMemStacheItem<X>> result = null;
                dynamic result = null;

                if (category == StacheItemEnum.stchSerialized)
                {
                    result = new MemStache <X, MemStacheSerializedItem <X> >(category, saveCacheItemData, getCacheItemData);
                }
                else
                {
                    result = new MemStache <X, MemStacheProtectedItem <X> >(category, saveCacheItemData, getCacheItemData);
                }

                return(result);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}" + e.Message);
                throw;
            }
        }
Example #2
0
 private MemStache(StacheItemEnum category = StacheItemEnum.stchBasic, Func <string, string, Task> _SaveCacheItemData = null, Func <string, Task <T> > _GetCacheItemData = null)
 {
     _stacheItemEnum   = category;
     SaveCacheItemData = _SaveCacheItemData;
     GetCacheItemData  = _GetCacheItemData;
     _weakCache        = new ConcurrentDictionary <string, WeakReference <MemStacheItemType> >(StringComparer.Ordinal);
     _limitedCache     = new ConcurrentDictionary <string, MemStacheItemType>(StringComparer.Ordinal);
     _pendingTasks     = new ConcurrentDictionary <string, Task <T> >(StringComparer.Ordinal);
 }