Beispiel #1
0
		public CacheItem(CacheDefinition definition)
		{
			IsWaiting = false;
			Id = definition.Id;
			Value = definition.Value;
			ExpireAfter = definition.ExpireAfter;
		}
Beispiel #2
0
		public ICoroutineResult AddOrUpdateAndGet(CacheDefinition cacheItem, Action<object> set, string groupId = null)
		{
			SetupCacheDefinitionExpireTime(cacheItem, groupId);
			var cm = new CacheMessage(CacheAction.AddOrUpdateAndGet, _messageTimeout)
			{
				GroupId = groupId,
				CacheItem = cacheItem,
				ItemId = cacheItem.Id
			};
			_cacheMessages.Enqueue(cm);
			return BuildResult(cm, set);
		}
Beispiel #3
0
		public void AddOrUpdateItem(CacheDefinition cacheItem, string groupId = null)
		{
			SetupCacheDefinitionExpireTime(cacheItem, groupId);
			var cm = new CacheMessage(CacheAction.AddOrUpdateItem, _messageTimeout)
			{
				GroupId = groupId,
				CacheItem = cacheItem,
				ItemId = cacheItem.Id
			};
			_cacheMessages.Enqueue(cm);
		}
Beispiel #4
0
		private void SetupCacheDefinitionExpireTime(CacheDefinition cacheItem, string groupId)
		{
			if (!_groups.ContainsKey(groupId ?? string.Empty))
			{
				throw new Exception("Missing cache group id " + groupId ?? string.Empty);
			}
			var group = _groups[groupId ?? string.Empty];
			if (cacheItem.ExpireAfter.TotalMilliseconds < 0)
			{
				cacheItem.ExpireAfter = group.ExpireAfter;
			}
		}
Beispiel #5
0
		public void AddGroup(CacheGroupDefinition groupDefinition, CacheDefinition cacheItem = null)
		{
			if (_groups.ContainsKey(groupDefinition.Id))
			{
				throw new Exception("Duplicate cache group id " + groupDefinition.Id);
			}
			var cm = new CacheMessage(CacheAction.AddGroup, _messageTimeout)
			{
				GroupDefinition = groupDefinition,
				CacheItem = cacheItem
			};
			_cacheMessages.Enqueue(cm);
		}
Beispiel #6
0
		public ICoroutineResult AddOrUpdateAndGet(CacheDefinition cacheItem, Action<object> set, string groupId = null)
		{
			throw new NotImplementedException();
		}
Beispiel #7
0
		public void AddOrUpdateItem(CacheDefinition cacheItem, string groupId = null)
		{
			throw new NotImplementedException();
		}
Beispiel #8
0
		public void AddGroup(CacheGroupDefinition groupDefinition, CacheDefinition cacheItem = null)
		{
			throw new NotImplementedException();
		}