1
0
mirror of https://github.com/JKorf/CryptoExchange.Net.git synced 2026-08-20 04:42:57 +00:00

Added paused activity socket events

This commit is contained in:
JKorf
2020-02-05 11:26:36 +01:00
parent d459102323
commit 66c0b90016
4 changed files with 68 additions and 2 deletions
+25 -2
View File
@@ -25,6 +25,14 @@ namespace CryptoExchange.Net.Sockets
/// </summary>
public event Action<TimeSpan>? ConnectionRestored;
/// <summary>
/// The connection is paused event
/// </summary>
public event Action? ActivityPaused;
/// <summary>
/// The connection is unpaused event
/// </summary>
public event Action? ActivityUnpaused;
/// <summary>
/// Connecting closed event
/// </summary>
public event Action? Closed;
@@ -60,11 +68,26 @@ namespace CryptoExchange.Net.Sockets
/// Time of disconnecting
/// </summary>
public DateTime? DisconnectTime { get; set; }
/// <summary>
/// If activity is paused
/// </summary>
public bool PausedActivity { get; set; }
public bool PausedActivity
{
get => pausedActivity;
set
{
if (pausedActivity != value)
{
pausedActivity = value;
log.Write(LogVerbosity.Debug, "Paused activity: " + value);
if(pausedActivity) ActivityPaused?.Invoke();
else ActivityUnpaused?.Invoke();
}
}
}
private bool pausedActivity;
private readonly List<SocketSubscription> handlers;
private readonly object handlersLock = new object();
@@ -155,7 +178,7 @@ namespace CryptoExchange.Net.Sockets
var sw = Stopwatch.StartNew();
lock (handlersLock)
{
foreach (var handler in handlers)
foreach (var handler in handlers.ToList())
{
currentSubscription = handler;
if (handler.Request == null)
@@ -29,6 +29,24 @@ namespace CryptoExchange.Net.Sockets
remove => connection.ConnectionRestored -= value;
}
/// <summary>
/// Event when the connection to the server is paused. No operations can be performed while paused
/// </summary>
public event Action ActivityPaused
{
add => connection.ActivityPaused += value;
remove => connection.ActivityPaused -= value;
}
/// <summary>
/// Event when the connection to the server is unpaused
/// </summary>
public event Action ActivityUnpaused
{
add => connection.ActivityUnpaused += value;
remove => connection.ActivityUnpaused -= value;
}
/// <summary>
/// Event when an exception happened
/// </summary>