Browse Source

'Added connection event `Connecting`'

pull/806/head
Radka Janek 8 years ago
parent
commit
5fdfee89ce
5 changed files with 18 additions and 0 deletions
  1. +6
    -0
      src/Discord.Net.Rpc/DiscordRpcClient.Events.cs
  2. +1
    -0
      src/Discord.Net.Rpc/DiscordRpcClient.cs
  3. +4
    -0
      src/Discord.Net.WebSocket/ConnectionManager.cs
  4. +6
    -0
      src/Discord.Net.WebSocket/DiscordSocketClient.Events.cs
  5. +1
    -0
      src/Discord.Net.WebSocket/DiscordSocketClient.cs

+ 6
- 0
src/Discord.Net.Rpc/DiscordRpcClient.Events.cs View File

@@ -6,6 +6,12 @@ namespace Discord.Rpc
public partial class DiscordRpcClient
{
//General
public event Func<Task> Connecting
{
add { _connectingEvent.Add(value); }
remove { _connectingEvent.Remove(value); }
}
private readonly AsyncEvent<Func<Task>> _connectingEvent = new AsyncEvent<Func<Task>>();
public event Func<Task> Connected
{
add { _connectedEvent.Add(value); }


+ 1
- 0
src/Discord.Net.Rpc/DiscordRpcClient.cs View File

@@ -40,6 +40,7 @@ namespace Discord.Rpc
_rpcLogger = LogManager.CreateLogger("RPC");
_connection = new ConnectionManager(_stateLock, _rpcLogger, config.ConnectionTimeout,
ConnectAsync, DisconnectAsync, x => ApiClient.Disconnected += x);
_connection.Connecting += () => _connectingEvent.InvokeAsync();
_connection.Connected += () => _connectedEvent.InvokeAsync();
_connection.Disconnected += (ex, recon) => _disconnectedEvent.InvokeAsync(ex);



+ 4
- 0
src/Discord.Net.WebSocket/ConnectionManager.cs View File

@@ -8,6 +8,8 @@ namespace Discord
{
internal class ConnectionManager
{
public event Func<Task> Connecting { add { _connectingEvent.Add(value); } remove { _connectingEvent.Remove(value); } }
private readonly AsyncEvent<Func<Task>> _connectingEvent = new AsyncEvent<Func<Task>>();
public event Func<Task> Connected { add { _connectedEvent.Add(value); } remove { _connectedEvent.Remove(value); } }
private readonly AsyncEvent<Func<Task>> _connectedEvent = new AsyncEvent<Func<Task>>();
public event Func<Exception, bool, Task> Disconnected { add { _disconnectedEvent.Add(value); } remove { _disconnectedEvent.Remove(value); } }
@@ -123,6 +125,8 @@ namespace Discord

try
{
await _connectingEvent.InvokeAsync().ConfigureAwait(false);

var readyPromise = new TaskCompletionSource<bool>();
_readyPromise = readyPromise;



+ 6
- 0
src/Discord.Net.WebSocket/DiscordSocketClient.Events.cs View File

@@ -7,6 +7,12 @@ namespace Discord.WebSocket
public partial class DiscordSocketClient
{
//General
public event Func<Task> Connecting
{
add { _connectingEvent.Add(value); }
remove { _connectingEvent.Remove(value); }
}
private readonly AsyncEvent<Func<Task>> _connectingEvent = new AsyncEvent<Func<Task>>();
public event Func<Task> Connected
{
add { _connectedEvent.Add(value); }


+ 1
- 0
src/Discord.Net.WebSocket/DiscordSocketClient.cs View File

@@ -92,6 +92,7 @@ namespace Discord.WebSocket
_gatewayLogger = LogManager.CreateLogger(ShardId == 0 && TotalShards == 1 ? "Gateway" : $"Shard #{ShardId}");
_connection = new ConnectionManager(_stateLock, _gatewayLogger, config.ConnectionTimeout,
ConnectAsync, DisconnectAsync, x => ApiClient.Disconnected += x);
_connection.Connecting += () => TimedInvokeAsync(_connectingEvent, nameof(Connecting));
_connection.Connected += () => TimedInvokeAsync(_connectedEvent, nameof(Connected));
_connection.Disconnected += (ex, recon) => TimedInvokeAsync(_disconnectedEvent, nameof(Disconnected), ex);



Loading…
Cancel
Save