refactor: rename IEncodable to Encodable

This commit is contained in:
Anna 2021-02-16 19:50:36 -05:00
parent c834921400
commit 3f85ced4bf
7 changed files with 28 additions and 27 deletions

View File

@ -47,7 +47,7 @@ namespace XIVChatCommon {
return new SessionKeys(rx, tx); return new SessionKeys(rx, tx);
} }
public async static Task<HandshakeInfo> ServerHandshake(KeyPair server, Stream stream) { public static async Task<HandshakeInfo> ServerHandshake(KeyPair server, Stream stream) {
// get client public key // get client public key
byte[] clientPublic = new byte[32]; byte[] clientPublic = new byte[32];
await stream.ReadAsync(clientPublic, 0, clientPublic.Length); await stream.ReadAsync(clientPublic, 0, clientPublic.Length);
@ -62,7 +62,7 @@ namespace XIVChatCommon {
return new HandshakeInfo(clientPublic, keys); return new HandshakeInfo(clientPublic, keys);
} }
public async static Task<HandshakeInfo> ClientHandshake(KeyPair client, Stream stream) { public static async Task<HandshakeInfo> ClientHandshake(KeyPair client, Stream stream) {
// send our public key // send our public key
await stream.WriteAsync(client.PublicKey, 0, client.PublicKey.Length); await stream.WriteAsync(client.PublicKey, 0, client.PublicKey.Length);

View File

@ -18,7 +18,7 @@ namespace XIVChatCommon.Message.Client {
#region Ping #region Ping
public class Ping : IEncodable { public class Ping : Encodable {
public static Ping Instance { get; } = new(); public static Ping Instance { get; } = new();
[IgnoreMember] [IgnoreMember]
@ -34,7 +34,7 @@ namespace XIVChatCommon.Message.Client {
#region Message #region Message
[MessagePackObject] [MessagePackObject]
public class ClientMessage : IEncodable { public class ClientMessage : Encodable {
[Key(0)] [Key(0)]
public string Content { get; set; } public string Content { get; set; }
@ -58,7 +58,7 @@ namespace XIVChatCommon.Message.Client {
#region Shutdown #region Shutdown
public class ClientShutdown : IEncodable { public class ClientShutdown : Encodable {
public static ClientShutdown Instance { get; } = new(); public static ClientShutdown Instance { get; } = new();
[IgnoreMember] [IgnoreMember]
@ -74,7 +74,7 @@ namespace XIVChatCommon.Message.Client {
#region Backlog/catch-up #region Backlog/catch-up
[MessagePackObject] [MessagePackObject]
public class ClientBacklog : IEncodable { public class ClientBacklog : Encodable {
[Key(0)] [Key(0)]
public ushort Amount { get; set; } public ushort Amount { get; set; }
@ -90,7 +90,7 @@ namespace XIVChatCommon.Message.Client {
} }
[MessagePackObject] [MessagePackObject]
public class ClientCatchUp : IEncodable { public class ClientCatchUp : Encodable {
[MessagePackFormatter(typeof(MillisecondsDateTimeFormatter))] [MessagePackFormatter(typeof(MillisecondsDateTimeFormatter))]
[Key(0)] [Key(0)]
public DateTime After { get; set; } public DateTime After { get; set; }
@ -115,7 +115,7 @@ namespace XIVChatCommon.Message.Client {
#region Player list #region Player list
[MessagePackObject] [MessagePackObject]
public class ClientPlayerList : IEncodable { public class ClientPlayerList : Encodable {
[Key(0)] [Key(0)]
public PlayerListType Type { get; set; } public PlayerListType Type { get; set; }
@ -135,7 +135,7 @@ namespace XIVChatCommon.Message.Client {
#region Preferences #region Preferences
[MessagePackObject] [MessagePackObject]
public class ClientPreferences : IEncodable { public class ClientPreferences : Encodable {
[Key(0)] [Key(0)]
public Dictionary<ClientPreference, object> Preferences { get; set; } = new(); public Dictionary<ClientPreference, object> Preferences { get; set; } = new();
@ -190,7 +190,7 @@ namespace XIVChatCommon.Message.Client {
#region Channel #region Channel
[MessagePackObject] [MessagePackObject]
public class ClientChannel : IEncodable { public class ClientChannel : Encodable {
protected override byte Code => (byte) ClientOperation.Channel; protected override byte Code => (byte) ClientOperation.Channel;
[Key(0)] [Key(0)]

View File

@ -725,7 +725,8 @@ namespace XIVChatCommon.Message {
Online = 47, Online = 47,
} }
public abstract class IEncodable { // ReSharper disable once IdentifierTypo
public abstract class Encodable {
protected abstract byte Code { get; } protected abstract byte Code { get; }
protected abstract byte[] PayloadEncode(); protected abstract byte[] PayloadEncode();

View File

@ -20,7 +20,7 @@ namespace XIVChatCommon.Message.Server {
#region Pong #region Pong
public class Pong : IEncodable { public class Pong : Encodable {
public static Pong Instance { get; } = new(); public static Pong Instance { get; } = new();
[IgnoreMember] [IgnoreMember]
@ -36,7 +36,7 @@ namespace XIVChatCommon.Message.Server {
#region Message #region Message
[MessagePackObject] [MessagePackObject]
public class ServerMessage : IEncodable { public class ServerMessage : Encodable {
[MessagePackFormatter(typeof(MillisecondsDateTimeFormatter))] [MessagePackFormatter(typeof(MillisecondsDateTimeFormatter))]
[Key(0)] [Key(0)]
public DateTime Timestamp { get; set; } public DateTime Timestamp { get; set; }
@ -201,7 +201,7 @@ namespace XIVChatCommon.Message.Server {
#region Shutdown #region Shutdown
public class ServerShutdown : IEncodable { public class ServerShutdown : Encodable {
public static ServerShutdown Instance { get; } = new(); public static ServerShutdown Instance { get; } = new();
[IgnoreMember] [IgnoreMember]
@ -217,7 +217,7 @@ namespace XIVChatCommon.Message.Server {
#region Player data #region Player data
[MessagePackObject] [MessagePackObject]
public class PlayerData : IEncodable { public class PlayerData : Encodable {
[Key(0)] [Key(0)]
public readonly string homeWorld; public readonly string homeWorld;
@ -250,7 +250,7 @@ namespace XIVChatCommon.Message.Server {
} }
[MessagePackObject] [MessagePackObject]
public class EmptyPlayerData : IEncodable { public class EmptyPlayerData : Encodable {
public static EmptyPlayerData Instance { get; } = new(); public static EmptyPlayerData Instance { get; } = new();
[IgnoreMember] [IgnoreMember]
@ -266,7 +266,7 @@ namespace XIVChatCommon.Message.Server {
#region Availability #region Availability
[MessagePackObject] [MessagePackObject]
public class Availability : IEncodable { public class Availability : Encodable {
[Key(0)] [Key(0)]
public readonly bool available; public readonly bool available;
@ -291,7 +291,7 @@ namespace XIVChatCommon.Message.Server {
#region Channel #region Channel
[MessagePackObject] [MessagePackObject]
public class ServerChannel : IEncodable { public class ServerChannel : Encodable {
[Key(0)] [Key(0)]
public readonly byte channel; public readonly byte channel;
@ -324,7 +324,7 @@ namespace XIVChatCommon.Message.Server {
#region Backlog #region Backlog
[MessagePackObject] [MessagePackObject]
public class ServerBacklog : IEncodable { public class ServerBacklog : Encodable {
[Key(0)] [Key(0)]
public readonly ServerMessage[] messages; public readonly ServerMessage[] messages;
@ -348,7 +348,7 @@ namespace XIVChatCommon.Message.Server {
#region Player list #region Player list
[MessagePackObject] [MessagePackObject]
public class ServerPlayerList : IEncodable { public class ServerPlayerList : Encodable {
[Key(0)] [Key(0)]
public PlayerListType Type { get; set; } public PlayerListType Type { get; set; }

View File

@ -10,7 +10,7 @@ namespace XIVChatCommon {
public static class SecretMessage { public static class SecretMessage {
private const uint MaxMessageLen = 128_000; private const uint MaxMessageLen = 128_000;
public async static Task<byte[]> ReadSecretMessage(Stream s, byte[] key, CancellationToken token = default) { public static async Task<byte[]> ReadSecretMessage(Stream s, byte[] key, CancellationToken token = default) {
var read = 0; var read = 0;
byte[] header = new byte[4 + 24]; byte[] header = new byte[4 + 24];
@ -34,7 +34,7 @@ namespace XIVChatCommon {
return SecretBox.Open(ciphertext, nonce, key); return SecretBox.Open(ciphertext, nonce, key);
} }
public async static Task SendSecretMessage(Stream s, byte[] key, byte[] message, CancellationToken token = default) { public static async Task SendSecretMessage(Stream s, byte[] key, byte[] message, CancellationToken token = default) {
byte[] nonce = SecretBox.GenerateNonce(); byte[] nonce = SecretBox.GenerateNonce();
byte[] ciphertext = SecretBox.Create(message, nonce, key); byte[] ciphertext = SecretBox.Create(message, nonce, key);
byte[] len = BitConverter.GetBytes((uint)ciphertext.Length); byte[] len = BitConverter.GetBytes((uint)ciphertext.Length);
@ -49,7 +49,7 @@ namespace XIVChatCommon {
await s.FlushAsync(token); await s.FlushAsync(token);
} }
public static async Task SendSecretMessage(Stream s, byte[] key, IEncodable message, CancellationToken token = default) { public static async Task SendSecretMessage(Stream s, byte[] key, Encodable message, CancellationToken token = default) {
await SendSecretMessage(s, key, message.Encode(), token); await SendSecretMessage(s, key, message.Encode(), token);
} }

View File

@ -24,7 +24,7 @@ namespace XIVChatPlugin {
public CancellationTokenSource TokenSource { get; } = new(); public CancellationTokenSource TokenSource { get; } = new();
public Channel<IEncodable> Queue { get; } = Channel.CreateUnbounded<IEncodable>(); public Channel<Encodable> Queue { get; } = Channel.CreateUnbounded<Encodable>();
public void Disconnect() { public void Disconnect() {
this.Connected = false; this.Connected = false;

View File

@ -238,7 +238,7 @@ namespace XIVChatPlugin {
continue; continue;
} }
var playerData = (IEncodable?) this.GeneratePlayerData() ?? EmptyPlayerData.Instance; var playerData = (Encodable?) this.GeneratePlayerData() ?? EmptyPlayerData.Instance;
client.Queue.Writer.TryWrite(playerData); client.Queue.Writer.TryWrite(playerData);
} }
@ -711,7 +711,7 @@ namespace XIVChatPlugin {
return parts.ToArray(); return parts.ToArray();
} }
private void BroadcastMessage(IEncodable message) { private void BroadcastMessage(Encodable message) {
foreach (var client in this.Clients.Values) { foreach (var client in this.Clients.Values) {
client.Queue.Writer.TryWrite(message); client.Queue.Writer.TryWrite(message);
} }
@ -780,7 +780,7 @@ namespace XIVChatPlugin {
} }
private void BroadcastPlayerData() { private void BroadcastPlayerData() {
var playerData = (IEncodable?) this.GeneratePlayerData() ?? EmptyPlayerData.Instance; var playerData = (Encodable?) this.GeneratePlayerData() ?? EmptyPlayerData.Instance;
this.BroadcastMessage(playerData); this.BroadcastMessage(playerData);
} }