Skip to content

Commit d168309

Browse files
release v1.0.3
- [change] modified NetMiddleware to an interface
1 parent 41b36a2 commit d168309

File tree

4 files changed

+15
-13
lines changed

4 files changed

+15
-13
lines changed

Miku.Core/NetMiddleware.cs renamed to Miku.Core/INetMiddleware.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,22 @@ namespace Miku.Core
55
/// <summary>
66
/// Middleware for processing data before sending or receiving
77
/// </summary>
8-
public abstract class NetMiddleware
8+
public interface INetMiddleware
99
{
1010
/// <summary>
1111
/// Process data before sending
1212
/// </summary>
1313
/// <param name="input">A data to be sent (might be processed by other middleware)</param>
1414
/// <param name="output">A processed data to be sent</param>
15-
public abstract void ProcessSend(ref ReadOnlyMemory<byte> input, out ReadOnlyMemory<byte> output);
16-
15+
void ProcessSend(ref ReadOnlyMemory<byte> input, out ReadOnlyMemory<byte> output);
16+
1717
/// <summary>
1818
/// Process data after receiving
1919
/// </summary>
2020
/// <param name="input">A received data (might be processed by other middleware)</param>
2121
/// <param name="output">A processed data to be passed to the next middleware</param>
2222
/// <returns>Whether to halt the processing and how many bytes are consumed</returns>
23-
public abstract (bool halt, int consumedFromOrigin) ProcessReceive(ref ReadOnlyMemory<byte> input, out ReadOnlyMemory<byte> output);
23+
(bool halt, int consumedFromOrigin) ProcessReceive(ref ReadOnlyMemory<byte> input,
24+
out ReadOnlyMemory<byte> output);
2425
}
2526
}

Miku.Core/NetClient.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public class NetClient
4848
/// </summary>
4949
public string Ip { get; private set; }
5050

51-
private readonly List<NetMiddleware> _middlewares = new();
51+
private readonly List<INetMiddleware> _middlewares = new();
5252
private Socket _socket;
5353
private bool _isConnected;
5454
private int _sending;
@@ -80,7 +80,7 @@ public NetClient(int bufferSize = 1024)
8080
/// Add a middleware to the client
8181
/// </summary>
8282
/// <param name="middleware"></param>
83-
public void AddMiddleware(NetMiddleware middleware)
83+
public void AddMiddleware(INetMiddleware middleware)
8484
{
8585
_middlewares.Add(middleware);
8686
}
@@ -89,7 +89,7 @@ public void AddMiddleware(NetMiddleware middleware)
8989
/// Remove a middleware from the client
9090
/// </summary>
9191
/// <param name="middleware"></param>
92-
public void RemoveMiddleware(NetMiddleware middleware)
92+
public void RemoveMiddleware(INetMiddleware middleware)
9393
{
9494
_middlewares.Remove(middleware);
9595
}

Miku.UnitTest/Lz4CompressionMiddleware.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,19 @@ namespace Miku.UnitTest;
77
/// <summary>
88
/// Middleware that compresses and decompresses data using the LZ4 algorithm.
99
/// </summary>
10-
public class Lz4CompressionMiddleware: NetMiddleware
10+
public class Lz4CompressionMiddleware : INetMiddleware
1111
{
1212
private readonly ArrayBufferWriter<byte> _buffer = new ArrayBufferWriter<byte>();
1313

14-
public override void ProcessSend(ref ReadOnlyMemory<byte> input, out ReadOnlyMemory<byte> output)
14+
public void ProcessSend(ref ReadOnlyMemory<byte> input, out ReadOnlyMemory<byte> output)
1515
{
1616
_buffer.Clear();
1717
LZ4Pickler.Pickle(input.Span, _buffer);
1818
output = _buffer.WrittenMemory;
1919
}
2020

21-
public override (bool halt, int consumedFromOrigin) ProcessReceive(ref ReadOnlyMemory<byte> input, out ReadOnlyMemory<byte> output)
21+
public (bool halt, int consumedFromOrigin) ProcessReceive(ref ReadOnlyMemory<byte> input,
22+
out ReadOnlyMemory<byte> output)
2223
{
2324
try
2425
{

Miku.UnitTest/PacketFrameMiddleware.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ namespace Miku.UnitTest;
77
/// <summary>
88
/// Middleware for processing packets. Prevent framing due to tcp.
99
/// </summary>
10-
public class PacketFrameMiddleware : NetMiddleware
10+
public class PacketFrameMiddleware : INetMiddleware
1111
{
1212
private readonly ArrayBufferWriter<byte> _buffer = new ArrayBufferWriter<byte>();
1313

14-
public override void ProcessSend(ref ReadOnlyMemory<byte> input, out ReadOnlyMemory<byte> output)
14+
public void ProcessSend(ref ReadOnlyMemory<byte> input, out ReadOnlyMemory<byte> output)
1515
{
1616
_buffer.Clear();
1717
var memory = _buffer.GetMemory(input.Length + 4);
@@ -24,7 +24,7 @@ public override void ProcessSend(ref ReadOnlyMemory<byte> input, out ReadOnlyMem
2424
Console.WriteLine($"Send: {string.Join(',', output.ToArray())}");
2525
}
2626

27-
public override (bool halt, int consumedFromOrigin) ProcessReceive(ref ReadOnlyMemory<byte> input,
27+
public (bool halt, int consumedFromOrigin) ProcessReceive(ref ReadOnlyMemory<byte> input,
2828
out ReadOnlyMemory<byte> output)
2929
{
3030
// If we don't have enough data to read the length of the packet, we need to wait for more data.

0 commit comments

Comments
 (0)