100 lines
1.5 KiB
C#
100 lines
1.5 KiB
C#
using System.Threading.Tasks;
|
|
|
|
namespace Server.Data;
|
|
|
|
internal class SocketData
|
|
{
|
|
private static object syncSent = new object();
|
|
|
|
private static object syncSents = new object();
|
|
|
|
private static object syncRecives = new object();
|
|
|
|
private static object syncRecive = new object();
|
|
|
|
private static object syncConnects = new object();
|
|
|
|
public static long Connects { get; private set; }
|
|
|
|
public static long Sents { get; private set; }
|
|
|
|
public static long Recives { get; private set; }
|
|
|
|
public static long Sent { get; private set; }
|
|
|
|
public static long Recive { get; private set; }
|
|
|
|
public static void ConnectsPluse()
|
|
{
|
|
Task.Run(delegate
|
|
{
|
|
lock (syncConnects)
|
|
{
|
|
Connects++;
|
|
}
|
|
});
|
|
}
|
|
|
|
public static void ConnectsMinuse()
|
|
{
|
|
Task.Run(delegate
|
|
{
|
|
lock (syncConnects)
|
|
{
|
|
Connects--;
|
|
}
|
|
});
|
|
}
|
|
|
|
public static void SentData(long count)
|
|
{
|
|
Task.Run(delegate
|
|
{
|
|
lock (syncSents)
|
|
{
|
|
Sents += count;
|
|
}
|
|
});
|
|
Task.Run(delegate
|
|
{
|
|
lock (syncSent)
|
|
{
|
|
Sent += count;
|
|
}
|
|
});
|
|
}
|
|
|
|
public static void ReciveData(long count)
|
|
{
|
|
Task.Run(delegate
|
|
{
|
|
lock (syncRecives)
|
|
{
|
|
Recives += count;
|
|
}
|
|
});
|
|
Task.Run(delegate
|
|
{
|
|
lock (syncRecive)
|
|
{
|
|
Recive += count;
|
|
}
|
|
});
|
|
}
|
|
|
|
public static void Clear()
|
|
{
|
|
Task.Run(delegate
|
|
{
|
|
lock (syncSent)
|
|
{
|
|
Sent = 0L;
|
|
}
|
|
lock (syncRecive)
|
|
{
|
|
Recive = 0L;
|
|
}
|
|
});
|
|
}
|
|
}
|