Files
Apr2020-Cpp2Il-Dump/Assembly-CSharp/BestHTTP/Extensions/HeartbeatManager.cs
T
niko 8fc35183db a
2026-04-11 22:19:20 +02:00

117 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading;
using Cpp2IlInjected;
namespace BestHTTP.Extensions
{
// Token: 0x02001F97 RID: 8087
[Token(Token = "0x2001F97")]
public sealed class HeartbeatManager
{
// Token: 0x0600CCE9 RID: 52457 RVA: 0x002EE154 File Offset: 0x002EC354
[Token(Token = "0x600CCE9")]
[Address(RVA = "0x1728640", Offset = "0x1727440", VA = "0x181728640")]
public void Subscribe(IHeartbeat heartbeat)
{
int num;
do
{
num = 0;
List<IHeartbeat> heartbeats = this.Heartbeats;
if (!this.Heartbeats.Contains(heartbeat))
{
this.Heartbeats.Add(heartbeat);
}
Monitor.Exit(heartbeats);
}
while (num != 0);
}
// Token: 0x0600CCEA RID: 52458 RVA: 0x002EE19C File Offset: 0x002EC39C
[Token(Token = "0x600CCEA")]
[Address(RVA = "0x1728730", Offset = "0x1727530", VA = "0x181728730")]
public void Unsubscribe(IHeartbeat heartbeat)
{
int num;
do
{
num = 0;
List<IHeartbeat> heartbeats = this.Heartbeats;
bool flag = this.Heartbeats.Remove(heartbeat);
Monitor.Exit(heartbeats);
}
while (num != 0);
}
// Token: 0x0600CCEB RID: 52459 RVA: 0x002EE1D0 File Offset: 0x002EC3D0
[Token(Token = "0x600CCEB")]
[Address(RVA = "0x1728800", Offset = "0x1727600", VA = "0x181728800")]
public void Update()
{
int num = 0;
DateTime lastUpdate = this.LastUpdate;
DateTime minValue = DateTime.MinValue;
if (!(lastUpdate == minValue))
{
DateTime utcNow = DateTime.UtcNow;
DateTime lastUpdate2 = this.LastUpdate;
TimeSpan timeSpan = utcNow - lastUpdate2;
DateTime utcNow2 = DateTime.UtcNow;
this.LastUpdate = utcNow2;
List<IHeartbeat> heartbeats = this.Heartbeats;
IHeartbeat[] updateArray = this.UpdateArray;
if (updateArray != 0)
{
int size = this.Heartbeats._size;
if (updateArray.Length >= size)
{
goto IL_7F;
}
}
List<IHeartbeat> heartbeats2 = this.Heartbeats;
IL_7F:
int size2 = this.Heartbeats._size;
List<IHeartbeat> heartbeats3 = this.Heartbeats;
int num2 = 0;
Monitor.Exit(heartbeats);
if (num != 0)
{
throw new IndexOutOfRangeException();
}
IHeartbeat heartbeat = this.UpdateArray[num2];
num2++;
}
DateTime utcNow3 = DateTime.UtcNow;
this.LastUpdate = utcNow3;
}
// Token: 0x0600CCEC RID: 52460 RVA: 0x002EE2D0 File Offset: 0x002EC4D0
[Token(Token = "0x600CCEC")]
[Address(RVA = "0x1728A80", Offset = "0x1727880", VA = "0x181728A80")]
public HeartbeatManager()
{
List<IHeartbeat> list = new List();
this.Heartbeats = list;
DateTime minValue = DateTime.MinValue;
this.LastUpdate = minValue;
base..ctor();
}
// Token: 0x0400826A RID: 33386
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400826A")]
private List<IHeartbeat> Heartbeats;
// Token: 0x0400826B RID: 33387
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400826B")]
private IHeartbeat[] UpdateArray;
// Token: 0x0400826C RID: 33388
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400826C")]
private DateTime LastUpdate;
}
}