public DelayInfo GetDelay(ICollection <CostType> consideredCostTypes) { DelayInfo faultInjectionDelay = this.GetFaultInjectionDelay(); if (faultInjectionDelay != DelayInfo.NoDelay) { return(faultInjectionDelay); } BudgetTypeSetting budgetTypeSetting = BudgetTypeSettings.Get(this.Owner.BudgetType); DelayInfo hardQuotaDelay = this.GetHardQuotaDelay(consideredCostTypes, budgetTypeSetting); if (hardQuotaDelay.Delay == budgetTypeSetting.MaxDelay) { return(hardQuotaDelay); } DelayInfo microDelay = this.GetMicroDelay(consideredCostTypes, budgetTypeSetting); if (hardQuotaDelay.Delay >= microDelay.Delay) { ExTraceGlobals.ClientThrottlingTracer.TraceDebug <TimeSpan, TimeSpan>((long)this.GetHashCode(), "[BudgetWrapper.GetDelay] UserQuota delay '{0}' was greater than micro delay '{1}'", hardQuotaDelay.Delay, microDelay.Delay); return(hardQuotaDelay); } ExTraceGlobals.ClientThrottlingTracer.TraceDebug <TimeSpan, TimeSpan>((long)this.GetHashCode(), "[BudgetWrapper.GetDelay] Micro delay '{0}' was greater than user quota delay '{1}'", microDelay.Delay, hardQuotaDelay.Delay); return(microDelay); }
// Token: 0x06007228 RID: 29224 RVA: 0x0017A125 File Offset: 0x00178325 public static BudgetTypeSetting Get(BudgetType budgetType) { if (BudgetTypeSettings.GetSettingsTestHook != null) { return(BudgetTypeSettings.GetSettingsTestHook(budgetType)); } return(BudgetTypeSettings.budgetTypeSettingsMap[budgetType]); }
// Token: 0x06007229 RID: 29225 RVA: 0x0017A148 File Offset: 0x00178348 internal static BudgetTypeSetting GetDefault(BudgetType budgetType) { if (BudgetTypeSettings.GetSettingsTestHook != null) { return(BudgetTypeSettings.GetSettingsTestHook(budgetType)); } BudgetTypeSetting result = null; if (BudgetTypeSettings.defaultBudgetTypeSettingsMap.TryGetValue(budgetType, out result)) { return(result); } return(BudgetTypeSetting.OneMinuteSetting); }
// Token: 0x0600722E RID: 29230 RVA: 0x0017A220 File Offset: 0x00178420 private static void LoadAppConfigSettings() { BudgetTypeSettings.budgetTypeSettingsMap = new Dictionary <BudgetType, BudgetTypeSetting>(); foreach (object obj in Enum.GetValues(typeof(BudgetType))) { BudgetType budgetType = (BudgetType)obj; string name = BudgetTypeSettings.BuildMicroDelayMultiplierKey(budgetType); string name2 = BudgetTypeSettings.BuildMaxDelayKey(budgetType); string name3 = BudgetTypeSettings.BuildMaxDelayedThreadsKey(budgetType); BudgetTypeSetting @default = BudgetTypeSettings.GetDefault(budgetType); IntAppSettingsEntry intAppSettingsEntry = new IntAppSettingsEntry(name, @default.MaxMicroDelayMultiplier, ExTraceGlobals.BudgetDelayTracer); TimeSpanAppSettingsEntry timeSpanAppSettingsEntry = new TimeSpanAppSettingsEntry(name2, TimeSpanUnit.Seconds, @default.MaxDelay, ExTraceGlobals.BudgetDelayTracer); IntAppSettingsEntry intAppSettingsEntry2 = new IntAppSettingsEntry(name3, @default.MaxDelayedThreadPerProcessor, ExTraceGlobals.BudgetDelayTracer); BudgetTypeSetting value = new BudgetTypeSetting(timeSpanAppSettingsEntry.Value, intAppSettingsEntry.Value, intAppSettingsEntry2.Value); BudgetTypeSettings.budgetTypeSettingsMap[budgetType] = value; } }
// Token: 0x06007227 RID: 29223 RVA: 0x0017A119 File Offset: 0x00178319 internal static void Initialize() { BudgetTypeSettings.CreateDefaultBudgetTypeSettingsMap(); BudgetTypeSettings.LoadAppConfigSettings(); }
// Token: 0x06007226 RID: 29222 RVA: 0x0017A10C File Offset: 0x0017830C static BudgetTypeSettings() { BudgetTypeSettings.Initialize(); }