public override void AddLoggedData(ArrayList bucketIds, OPLogType type = OPLogType.Cache) { if (bucketIds != null) { IEnumerator ie = bucketIds.GetEnumerator(); while (ie.MoveNext()) { if (_logMgr != null) { Hashtable loggedEnteries = _logMgr.GetLoggedEnteries((int)ie.Current); if (loggedEnteries != null && loggedEnteries.Count > 0) { Hashtable removed = loggedEnteries["removed"] as Hashtable; Hashtable updated = loggedEnteries["updated"] as Hashtable; if (removed != null && removed.Count > 0) { IDictionaryEnumerator ide = removed.GetEnumerator(); while (ide.MoveNext()) { Remove(ide.Key, ItemRemoveReason.Removed, false, null, 0, LockAccessType.IGNORE_LOCK, new OperationContext(OperationContextFieldName.OperationType, OperationContextOperationType.CacheOperation)); } } if (updated != null && updated.Count > 0) { IDictionaryEnumerator ide = updated.GetEnumerator(); while (ide.MoveNext()) { CacheEntry entry = ide.Value as CacheEntry; if (entry != null) { Insert(ide.Key, entry, false, false, null, 0, LockAccessType.IGNORE_LOCK, new OperationContext(OperationContextFieldName.OperationType, OperationContextOperationType.CacheOperation)); } } } } //disable logging for this bucket... _logMgr.RemoveLogger((int)ie.Current); } } } }
public override Hashtable GetLogTable(ArrayList bucketIds, ref bool isLoggingStopped, OPLogType type = OPLogType.Cache) { Hashtable result = null; int logCount = 0; IEnumerator ie = bucketIds.GetEnumerator(); while (ie.MoveNext()) { Hashtable tmp = _logMgr.GetLogTable((int)ie.Current); if (tmp != null) { if (result == null) { result = tmp; } else { ArrayList removed = tmp["removed"] as ArrayList; ArrayList updated = tmp["updated"] as ArrayList; if (removed != null) { ((ArrayList)result["removed"]).AddRange(removed); logCount += removed.Count; } if (updated != null) { ((ArrayList)result["updated"]).AddRange(updated); logCount += updated.Count; } } } } if (logCount < _stopLoggingThreshhold) { isLoggingStopped = true; _logMgr.StopLogging(bucketIds); } else { isLoggingStopped = false; } return(result); }