39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net.Sockets;
|
|
using System.Threading;
|
|
|
|
namespace Integrations.Cod
|
|
{
|
|
/// <summary>
|
|
/// used to keep track of the udp connection state
|
|
/// </summary>
|
|
internal class ConnectionState
|
|
{
|
|
~ConnectionState()
|
|
{
|
|
OnComplete.Dispose();
|
|
OnSentData.Dispose();
|
|
OnReceivedData.Dispose();
|
|
}
|
|
|
|
public int ConnectionAttempts { get; set; }
|
|
private const int BufferSize = 16384;
|
|
public readonly byte[] ReceiveBuffer = new byte[BufferSize];
|
|
public readonly SemaphoreSlim OnComplete = new SemaphoreSlim(1, 1);
|
|
public readonly SemaphoreSlim OnSentData = new(1, 1);
|
|
public readonly SemaphoreSlim OnReceivedData = new (1, 1);
|
|
|
|
public List<int> BytesReadPerSegment { get; set; } = new();
|
|
public SocketAsyncEventArgs SendEventArgs { get; set; } = new();
|
|
public SocketAsyncEventArgs ReceiveEventArgs { get; set; } = new();
|
|
public DateTime LastQuery { get; set; } = DateTime.Now;
|
|
}
|
|
|
|
internal class ConnectionUserToken
|
|
{
|
|
public Socket Socket { get; set; }
|
|
public CancellationToken CancellationToken { get; set; }
|
|
}
|
|
}
|