Added reference project
This commit is contained in:
16
ref/Net/HttpException.cs
Normal file
16
ref/Net/HttpException.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
|
||||
namespace Discord.Net
|
||||
{
|
||||
public class HttpException : Exception
|
||||
{
|
||||
public HttpStatusCode StatusCode { get; }
|
||||
|
||||
public HttpException(HttpStatusCode statusCode)
|
||||
: base($"The server responded with error {(int)statusCode} ({statusCode})")
|
||||
{
|
||||
StatusCode = statusCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
17
ref/Net/Rest/CompletedRequestEventArgs.cs
Normal file
17
ref/Net/Rest/CompletedRequestEventArgs.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
namespace Discord.Net.Rest
|
||||
{
|
||||
public class CompletedRequestEventArgs : RequestEventArgs
|
||||
{
|
||||
public object Response { get; set; }
|
||||
public string ResponseJson { get; set; }
|
||||
public double Milliseconds { get; set; }
|
||||
|
||||
public CompletedRequestEventArgs(IRestRequest request, object response, string responseJson, double milliseconds)
|
||||
: base(request)
|
||||
{
|
||||
Response = response;
|
||||
ResponseJson = responseJson;
|
||||
Milliseconds = milliseconds;
|
||||
}
|
||||
}
|
||||
}
|
||||
23
ref/Net/Rest/IRestRequest.cs
Normal file
23
ref/Net/Rest/IRestRequest.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
namespace Discord.Net.Rest
|
||||
{
|
||||
public interface IRestRequest
|
||||
{
|
||||
string Method { get; }
|
||||
string Endpoint { get; }
|
||||
object Payload { get; }
|
||||
}
|
||||
public interface IRestRequest<ResponseT> : IRestRequest
|
||||
where ResponseT : class
|
||||
{
|
||||
}
|
||||
|
||||
public interface IRestFileRequest : IRestRequest
|
||||
{
|
||||
string Filename { get; }
|
||||
Stream Stream { get; }
|
||||
}
|
||||
public interface IRestFileRequest<ResponseT> : IRestFileRequest, IRestRequest<Message>
|
||||
where ResponseT : class
|
||||
{
|
||||
}
|
||||
}
|
||||
12
ref/Net/Rest/RequestEventArgs.cs
Normal file
12
ref/Net/Rest/RequestEventArgs.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace Discord.Net.Rest
|
||||
{
|
||||
public class RequestEventArgs : EventArgs
|
||||
{
|
||||
public IRestRequest Request { get; set; }
|
||||
public bool Cancel { get; set; }
|
||||
|
||||
public RequestEventArgs(IRestRequest request) { }
|
||||
}
|
||||
}
|
||||
25
ref/Net/Rest/RestClient.cs
Normal file
25
ref/Net/Rest/RestClient.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Discord.Net.Rest
|
||||
{
|
||||
public abstract partial class RestClient
|
||||
{
|
||||
public event EventHandler<RequestEventArgs> SendingRequest = delegate { };
|
||||
public event EventHandler<CompletedRequestEventArgs> SentRequest = delegate { };
|
||||
|
||||
public CancellationToken CancelToken { get; set; }
|
||||
public string Token { get; set; }
|
||||
|
||||
public Task<ResponseT> Send<ResponseT>(IRestRequest<ResponseT> request)
|
||||
where ResponseT : class
|
||||
=> null;
|
||||
public Task Send(IRestRequest request) => null;
|
||||
|
||||
public Task<ResponseT> Send<ResponseT>(IRestFileRequest<ResponseT> request)
|
||||
where ResponseT : class
|
||||
=> null;
|
||||
public Task Send(IRestFileRequest request) => null;
|
||||
}
|
||||
}
|
||||
9
ref/Net/TimeoutException.cs
Normal file
9
ref/Net/TimeoutException.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using System;
|
||||
|
||||
namespace Discord.Net
|
||||
{
|
||||
public class TimeoutException : OperationCanceledException
|
||||
{
|
||||
public TimeoutException() { }
|
||||
}
|
||||
}
|
||||
12
ref/Net/WebSocketException.cs
Normal file
12
ref/Net/WebSocketException.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace Discord.Net
|
||||
{
|
||||
public class WebSocketException : Exception
|
||||
{
|
||||
public int Code { get; }
|
||||
public string Reason { get; }
|
||||
|
||||
public WebSocketException(int code, string reason) { }
|
||||
}
|
||||
}
|
||||
11
ref/Net/WebSockets/BinaryMessageEventArgs.cs
Normal file
11
ref/Net/WebSockets/BinaryMessageEventArgs.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace Discord.Net.WebSockets
|
||||
{
|
||||
public class BinaryMessageEventArgs : EventArgs
|
||||
{
|
||||
public byte[] Data { get; }
|
||||
|
||||
public BinaryMessageEventArgs(byte[] data) { }
|
||||
}
|
||||
}
|
||||
31
ref/Net/WebSockets/GatewaySocket.cs
Normal file
31
ref/Net/WebSockets/GatewaySocket.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using Discord.Logging;
|
||||
using Discord.Net.Rest;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Discord.Net.WebSockets
|
||||
{
|
||||
public class GatewaySocket : WebSocket
|
||||
{
|
||||
public string SessionId { get; private set; }
|
||||
|
||||
public event EventHandler<WebSocketEventEventArgs> ReceivedDispatch = delegate { };
|
||||
|
||||
public GatewaySocket(DiscordConfig config, ILogger logger) : base(config, logger) { }
|
||||
|
||||
public Task Connect(RestClient rest, CancellationToken parentCancelToken) => null;
|
||||
public Task Disconnect() => null;
|
||||
|
||||
public void SendIdentify(string token) { }
|
||||
|
||||
public void SendResume() { }
|
||||
public override void SendHeartbeat() { }
|
||||
public void SendUpdateStatus(long? idleSince, string gameName) { }
|
||||
public void SendUpdateVoice(ulong? serverId, ulong? channelId, bool isSelfMuted, bool isSelfDeafened) { }
|
||||
public void SendRequestMembers(IEnumerable<ulong> serverId, string query, int limit) { }
|
||||
|
||||
public override void WaitForConnection(CancellationToken cancelToken) { }
|
||||
}
|
||||
}
|
||||
18
ref/Net/WebSockets/IWebSocketEngine.cs
Normal file
18
ref/Net/WebSockets/IWebSocketEngine.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Discord.Net.WebSockets
|
||||
{
|
||||
public interface IWebSocketEngine
|
||||
{
|
||||
event EventHandler<BinaryMessageEventArgs> BinaryMessage;
|
||||
event EventHandler<TextMessageEventArgs> TextMessage;
|
||||
|
||||
Task Connect(string host, CancellationToken cancelToken);
|
||||
Task Disconnect();
|
||||
void QueueMessage(string message);
|
||||
IEnumerable<Task> GetTasks(CancellationToken cancelToken);
|
||||
}
|
||||
}
|
||||
11
ref/Net/WebSockets/TextMessageEventArgs.cs
Normal file
11
ref/Net/WebSockets/TextMessageEventArgs.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace Discord.Net.WebSockets
|
||||
{
|
||||
public class TextMessageEventArgs : EventArgs
|
||||
{
|
||||
public string Message { get; }
|
||||
|
||||
public TextMessageEventArgs(string msg) { Message = msg; }
|
||||
}
|
||||
}
|
||||
22
ref/Net/WebSockets/WebSocket.cs
Normal file
22
ref/Net/WebSockets/WebSocket.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using Discord.Logging;
|
||||
using System;
|
||||
using System.Threading;
|
||||
|
||||
namespace Discord.Net.WebSockets
|
||||
{
|
||||
public abstract partial class WebSocket
|
||||
{
|
||||
public CancellationToken CancelToken { get; }
|
||||
public ConnectionState State { get; }
|
||||
public string Host { get; }
|
||||
|
||||
public event EventHandler Connected = delegate { };
|
||||
public event EventHandler<DisconnectedEventArgs> Disconnected = delegate { };
|
||||
|
||||
public WebSocket(DiscordConfig config, ILogger logger) { }
|
||||
|
||||
public abstract void SendHeartbeat();
|
||||
|
||||
public virtual void WaitForConnection(CancellationToken cancelToken) { }
|
||||
}
|
||||
}
|
||||
17
ref/Net/WebSockets/WebSocketEventEventArgs.cs
Normal file
17
ref/Net/WebSockets/WebSocketEventEventArgs.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
|
||||
namespace Discord.Net.WebSockets
|
||||
{
|
||||
public class WebSocketEventEventArgs : EventArgs
|
||||
{
|
||||
public string Type { get; }
|
||||
public JToken Payload { get; }
|
||||
|
||||
internal WebSocketEventEventArgs(string type, JToken data)
|
||||
{
|
||||
Type = type;
|
||||
Payload = data;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user