public void AddIfNeeded(uint GroupId, ClientMessage Request, ServerMessage Response) { lock (mCachedResponses) { foreach (ResponseCacheItem Item in mCachedResponses) { if (Item.GroupId == GroupId && Item.Request.ToString() == Request.ToString()) { return; } } ResponseCacheItem NewItem = new ResponseCacheItem(GroupId, Request, Response); mCachedResponses.Add(NewItem); } }
public void AddIfNeeded(uint GroupId, ClientMessage Request, ServerMessage Response) { lock (mCachedResponses) { if (mCachedResponses.Count > mCacheMaxCapacity) { // capacity has been reached, to protect overflow remove the oldest element in the cache immediatly.. mCachedResponses.RemoveAt(mCachedResponses.Count - 1); } foreach (ResponseCacheItem Item in mCachedResponses) { if (Item.GroupId == GroupId && Item.Request.ToString() == Request.ToString()) { return; } } ResponseCacheItem NewItem = new ResponseCacheItem(GroupId, Request, Response); mCachedResponses.Add(NewItem); } }