// Token: 0x060004A0 RID: 1184 RVA: 0x00021E6C File Offset: 0x0002006C private void ManageCache(Guid mbxGuid) { int num = Array.IndexOf <Guid>(this.mbxGuidFifo, mbxGuid); if (num >= 0 && num != this.mbxGuidFifoStart) { int num2 = (num == 0) ? (ElcEventBasedAssistant.mbxFifoCacheSize - 1) : (num - 1); this.mbxGuidFifo[num] = this.mbxGuidFifo[num2]; this.mbxGuidFifo[num2] = mbxGuid; } if (num < 0) { this.mbxGuidFifoStart = ((this.mbxGuidFifoStart == 0) ? (ElcEventBasedAssistant.mbxFifoCacheSize - 1) : (this.mbxGuidFifoStart - 1)); Guid mbxGuid2 = this.mbxGuidFifo[this.mbxGuidFifoStart]; if (!Guid.Empty.Equals(this.mbxGuidFifoStart)) { CachedState cachedState = AssistantsService.CachedObjectsList.GetCachedState(mbxGuid2); if (cachedState != null) { cachedState.LockForWrite(); UserRetentionPolicyCache userRetentionPolicyCache = cachedState.State[5] as UserRetentionPolicyCache; if (userRetentionPolicyCache != null && !userRetentionPolicyCache.ReadOnlyCache) { cachedState.State[5] = null; } cachedState.ReleaseWriterLock(); } } this.mbxGuidFifo[this.mbxGuidFifoStart] = mbxGuid; } }
// Token: 0x060004EA RID: 1258 RVA: 0x0002570C File Offset: 0x0002390C internal static void UpdateStateForPendingFaiEvent(long eventCounter, CachedState cachedState) { cachedState.LockForWrite(); try { UserRetentionPolicyCache userRetentionPolicyCache = cachedState.State[5] as UserRetentionPolicyCache; if (userRetentionPolicyCache == null || userRetentionPolicyCache.ReadOnlyCache) { userRetentionPolicyCache = new UserRetentionPolicyCache(); } userRetentionPolicyCache.HasPendingFaiEvent = true; userRetentionPolicyCache.PendingFaiEventCounter = eventCounter; cachedState.State[5] = userRetentionPolicyCache; } finally { cachedState.ReleaseWriterLock(); } }