Skip to content

Commit 76383b1

Browse files
Ivan ShynkarenkaIvan Shynkarenka
authored andcommitted
Update FBE protocol
1 parent 65f75fb commit 76383b1

File tree

8 files changed

+424
-404
lines changed

8 files changed

+424
-404
lines changed

README.md

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,9 +1341,12 @@ using System.Net;
13411341
using System.Net.Sockets;
13421342
using NetCoreServer;
13431343

1344+
using com.chronoxor.simple;
1345+
using com.chronoxor.simple.FBE;
1346+
13441347
namespace ProtoServer
13451348
{
1346-
public class SimpleProtoSessionSender : FBE.simple.Sender, FBE.simple.ISenderListener
1349+
public class SimpleProtoSessionSender : Sender, ISenderListener
13471350
{
13481351
public SimpleProtoSession Session { get; }
13491352

@@ -1355,14 +1358,14 @@ namespace ProtoServer
13551358
}
13561359
}
13571360

1358-
public class SimpleProtoSessionReceiver : FBE.simple.Receiver, FBE.simple.IReceiverListener
1361+
public class SimpleProtoSessionReceiver : Receiver, IReceiverListener
13591362
{
13601363
public SimpleProtoSession Session { get; }
13611364

13621365
public SimpleProtoSessionReceiver(SimpleProtoSession session) { Session = session; }
13631366

1364-
public void OnReceive(simple.DisconnectRequest request) { Session.OnReceive(request); }
1365-
public void OnReceive(simple.SimpleRequest request) { Session.OnReceive(request); }
1367+
public void OnReceive(DisconnectRequest request) { Session.OnReceive(request); }
1368+
public void OnReceive(SimpleRequest request) { Session.OnReceive(request); }
13661369
}
13671370

13681371
public class SimpleProtoSession : TcpSession
@@ -1381,7 +1384,7 @@ namespace ProtoServer
13811384
Console.WriteLine($"TCP protocol session with Id '{Id}' connected to remote address '{(Socket.RemoteEndPoint as IPEndPoint)?.Address}' and port {(Socket.RemoteEndPoint as IPEndPoint)?.Port}");
13821385

13831386
// Send invite notification
1384-
simple.SimpleNotify notify = simple.SimpleNotify.Default;
1387+
SimpleNotify notify = SimpleNotify.Default;
13851388
notify.Notification = "Hello from Simple protocol server! Please send a message or '!' to disconnect the client!";
13861389
Sender.Send(notify);
13871390
}
@@ -1402,32 +1405,32 @@ namespace ProtoServer
14021405
}
14031406

14041407
// Protocol handlers
1405-
public void OnReceive(simple.DisconnectRequest request) { Disconnect(); }
1406-
public void OnReceive(simple.SimpleRequest request)
1408+
public void OnReceive(DisconnectRequest request) { Disconnect(); }
1409+
public void OnReceive(SimpleRequest request)
14071410
{
14081411
Console.WriteLine($"Received: {request}");
14091412

14101413
// Validate request
14111414
if (string.IsNullOrEmpty(request.Message))
14121415
{
14131416
// Send reject
1414-
simple.SimpleReject reject = simple.SimpleReject.Default;
1417+
SimpleReject reject = SimpleReject.Default;
14151418
reject.id = request.id;
14161419
reject.Error = "Request message is empty!";
14171420
Sender.Send(reject);
14181421
return;
14191422
}
14201423

14211424
// Send response
1422-
simple.SimpleResponse response = simple.SimpleResponse.Default;
1425+
SimpleResponse response = SimpleResponse.Default;
14231426
response.id = request.id;
14241427
response.Hash = (uint)request.Message.GetHashCode();
14251428
response.Length = (uint)request.Message.Length;
14261429
Sender.Send(response);
14271430
}
14281431
}
14291432

1430-
public class SimpleProtoSender : FBE.simple.Sender, FBE.simple.ISenderListener
1433+
public class SimpleProtoSender : Sender, ISenderListener
14311434
{
14321435
public SimpleProtoServer Server { get; }
14331436

@@ -1507,7 +1510,7 @@ namespace ProtoServer
15071510
}
15081511

15091512
// Multicast admin notification to all sessions
1510-
simple.SimpleNotify notify = simple.SimpleNotify.Default;
1513+
SimpleNotify notify = SimpleNotify.Default;
15111514
notify.Notification = "(admin) " + line;
15121515
server.Sender.Send(notify);
15131516
}
@@ -1532,6 +1535,9 @@ using System.Net.Sockets;
15321535
using System.Threading;
15331536
using TcpClient = NetCoreServer.TcpClient;
15341537

1538+
using com.chronoxor.simple;
1539+
using com.chronoxor.simple.FBE;
1540+
15351541
namespace ProtoClient
15361542
{
15371543
public class TcpProtoClient : TcpClient
@@ -1649,7 +1655,7 @@ namespace ProtoClient
16491655
#endregion
16501656
}
16511657

1652-
public class SimpleProtoClient : FBE.simple.Client, FBE.simple.ISenderListener, FBE.simple.IReceiverListener, IDisposable
1658+
public class SimpleProtoClient : Client, ISenderListener, IReceiverListener, IDisposable
16531659
{
16541660
private readonly TcpProtoClient _tcpProtoClient;
16551661

@@ -1780,10 +1786,10 @@ namespace ProtoClient
17801786

17811787
#region Protocol handlers
17821788

1783-
private void HandleDisconnectRequest(simple.DisconnectRequest request) { Console.WriteLine($"Received: {request}"); _tcpProtoClient.DisconnectAsync(); }
1784-
private void HandleSimpleResponse(simple.SimpleResponse response) { Console.WriteLine($"Received: {response}"); }
1785-
private void HandleSimpleReject(simple.SimpleReject reject) { Console.WriteLine($"Received: {reject}"); }
1786-
private void HandleSimpleNotify(simple.SimpleNotify notify) { Console.WriteLine($"Received: {notify}"); }
1789+
private void HandleDisconnectRequest(DisconnectRequest request) { Console.WriteLine($"Received: {request}"); _tcpProtoClient.DisconnectAsync(); }
1790+
private void HandleSimpleResponse(SimpleResponse response) { Console.WriteLine($"Received: {response}"); }
1791+
private void HandleSimpleReject(SimpleReject reject) { Console.WriteLine($"Received: {reject}"); }
1792+
private void HandleSimpleNotify(SimpleNotify notify) { Console.WriteLine($"Received: {notify}"); }
17871793

17881794
#endregion
17891795

@@ -1879,7 +1885,7 @@ namespace ProtoClient
18791885
}
18801886

18811887
// Send request to the simple protocol server
1882-
simple.SimpleRequest request = simple.SimpleRequest.Default;
1888+
SimpleRequest request = SimpleRequest.Default;
18831889
request.Message = line;
18841890
var response = client.Request(request).Result;
18851891

examples/ProtoClient/Program.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
using System.Threading;
44
using TcpClient = NetCoreServer.TcpClient;
55

6+
using com.chronoxor.simple;
7+
using com.chronoxor.simple.FBE;
8+
69
namespace ProtoClient
710
{
811
public class TcpProtoClient : TcpClient
@@ -120,7 +123,7 @@ protected override void Dispose(bool disposingManagedResources)
120123
#endregion
121124
}
122125

123-
public class SimpleProtoClient : FBE.simple.Client, FBE.simple.ISenderListener, FBE.simple.IReceiverListener, IDisposable
126+
public class SimpleProtoClient : Client, ISenderListener, IReceiverListener, IDisposable
124127
{
125128
private readonly TcpProtoClient _tcpProtoClient;
126129

@@ -251,10 +254,10 @@ public void OnReceived(byte[] buffer, long offset, long size)
251254

252255
#region Protocol handlers
253256

254-
private void HandleDisconnectRequest(simple.DisconnectRequest request) { Console.WriteLine($"Received: {request}"); _tcpProtoClient.DisconnectAsync(); }
255-
private void HandleSimpleResponse(simple.SimpleResponse response) { Console.WriteLine($"Received: {response}"); }
256-
private void HandleSimpleReject(simple.SimpleReject reject) { Console.WriteLine($"Received: {reject}"); }
257-
private void HandleSimpleNotify(simple.SimpleNotify notify) { Console.WriteLine($"Received: {notify}"); }
257+
private void HandleDisconnectRequest(DisconnectRequest request) { Console.WriteLine($"Received: {request}"); _tcpProtoClient.DisconnectAsync(); }
258+
private void HandleSimpleResponse(SimpleResponse response) { Console.WriteLine($"Received: {response}"); }
259+
private void HandleSimpleReject(SimpleReject reject) { Console.WriteLine($"Received: {reject}"); }
260+
private void HandleSimpleNotify(SimpleNotify notify) { Console.WriteLine($"Received: {notify}"); }
258261

259262
#endregion
260263

@@ -352,7 +355,7 @@ static void Main(string[] args)
352355
}
353356

354357
// Send request to the simple protocol server
355-
simple.SimpleRequest request = simple.SimpleRequest.Default;
358+
SimpleRequest request = SimpleRequest.Default;
356359
request.Message = line;
357360
var response = client.Request(request).Result;
358361

examples/ProtoServer/Program.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
using System.Net.Sockets;
44
using NetCoreServer;
55

6+
using com.chronoxor.simple;
7+
using com.chronoxor.simple.FBE;
8+
69
namespace ProtoServer
710
{
8-
public class SimpleProtoSessionSender : FBE.simple.Sender, FBE.simple.ISenderListener
11+
public class SimpleProtoSessionSender : Sender, ISenderListener
912
{
1013
public SimpleProtoSession Session { get; }
1114

@@ -17,14 +20,14 @@ public long OnSend(byte[] buffer, long offset, long size)
1720
}
1821
}
1922

20-
public class SimpleProtoSessionReceiver : FBE.simple.Receiver, FBE.simple.IReceiverListener
23+
public class SimpleProtoSessionReceiver : Receiver, IReceiverListener
2124
{
2225
public SimpleProtoSession Session { get; }
2326

2427
public SimpleProtoSessionReceiver(SimpleProtoSession session) { Session = session; }
2528

26-
public void OnReceive(simple.DisconnectRequest request) { Session.OnReceive(request); }
27-
public void OnReceive(simple.SimpleRequest request) { Session.OnReceive(request); }
29+
public void OnReceive(DisconnectRequest request) { Session.OnReceive(request); }
30+
public void OnReceive(SimpleRequest request) { Session.OnReceive(request); }
2831
}
2932

3033
public class SimpleProtoSession : TcpSession
@@ -43,7 +46,7 @@ protected override void OnConnected()
4346
Console.WriteLine($"TCP protocol session with Id '{Id}' connected to remote address '{(Socket.RemoteEndPoint as IPEndPoint)?.Address}' and port {(Socket.RemoteEndPoint as IPEndPoint)?.Port}");
4447

4548
// Send invite notification
46-
simple.SimpleNotify notify = simple.SimpleNotify.Default;
49+
SimpleNotify notify = SimpleNotify.Default;
4750
notify.Notification = "Hello from Simple protocol server! Please send a message or '!' to disconnect the client!";
4851
Sender.Send(notify);
4952
}
@@ -64,32 +67,32 @@ protected override void OnError(SocketError error)
6467
}
6568

6669
// Protocol handlers
67-
public void OnReceive(simple.DisconnectRequest request) { Disconnect(); }
68-
public void OnReceive(simple.SimpleRequest request)
70+
public void OnReceive(DisconnectRequest request) { Disconnect(); }
71+
public void OnReceive(SimpleRequest request)
6972
{
7073
Console.WriteLine($"Received: {request}");
7174

7275
// Validate request
7376
if (string.IsNullOrEmpty(request.Message))
7477
{
7578
// Send reject
76-
simple.SimpleReject reject = simple.SimpleReject.Default;
79+
SimpleReject reject = SimpleReject.Default;
7780
reject.id = request.id;
7881
reject.Error = "Request message is empty!";
7982
Sender.Send(reject);
8083
return;
8184
}
8285

8386
// Send response
84-
simple.SimpleResponse response = simple.SimpleResponse.Default;
87+
SimpleResponse response = SimpleResponse.Default;
8588
response.id = request.id;
8689
response.Hash = (uint)request.Message.GetHashCode();
8790
response.Length = (uint)request.Message.Length;
8891
Sender.Send(response);
8992
}
9093
}
9194

92-
public class SimpleProtoSender : FBE.simple.Sender, FBE.simple.ISenderListener
95+
public class SimpleProtoSender : Sender, ISenderListener
9396
{
9497
public SimpleProtoServer Server { get; }
9598

@@ -169,7 +172,7 @@ static void Main(string[] args)
169172
}
170173

171174
// Multicast admin notification to all sessions
172-
simple.SimpleNotify notify = simple.SimpleNotify.Default;
175+
SimpleNotify notify = SimpleNotify.Default;
173176
notify.Notification = "(admin) " + line;
174177
server.Sender.Send(notify);
175178
}

performance/ProtoClient/Program.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
using NetCoreServer;
66
using NDesk.Options;
77

8+
using com.chronoxor.simple;
9+
using com.chronoxor.simple.FBE;
10+
811
namespace ProtoClient
912
{
1013
class TcpProtoClient : NetCoreServer.TcpClient
@@ -42,7 +45,7 @@ protected override void OnError(SocketError error)
4245
}
4346
}
4447

45-
class ProtoClient : FBE.simple.Client, FBE.simple.ISenderListener, FBE.simple.IReceiverListener, IDisposable
48+
class ProtoClient : Client, ISenderListener, IReceiverListener, IDisposable
4649
{
4750
private readonly TcpProtoClient _tcpProtoClient;
4851

@@ -83,7 +86,7 @@ private void DisposeClient()
8386

8487
private void SendMessage()
8588
{
86-
simple.SimpleRequest message = simple.SimpleRequest.Default;
89+
SimpleRequest message = SimpleRequest.Default;
8790
message.Message = Program.MessageToSend;
8891
Request(message);
8992
}
@@ -129,10 +132,10 @@ public void OnReceived(byte[] buffer, long offset, long size)
129132

130133
#region Protocol handlers
131134

132-
private void HandleDisconnectRequest(simple.DisconnectRequest request) { _tcpProtoClient.DisconnectAsync(); }
133-
private void HandleSimpleResponse(simple.SimpleResponse response) { SendMessage(); }
134-
private void HandleSimpleReject(simple.SimpleReject reject) {}
135-
private void HandleSimpleNotify(simple.SimpleNotify notify) {}
135+
private void HandleDisconnectRequest(DisconnectRequest request) { _tcpProtoClient.DisconnectAsync(); }
136+
private void HandleSimpleResponse(SimpleResponse response) { SendMessage(); }
137+
private void HandleSimpleReject(SimpleReject reject) {}
138+
private void HandleSimpleNotify(SimpleNotify notify) {}
136139

137140
#endregion
138141

performance/ProtoServer/Program.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@
44
using NetCoreServer;
55
using NDesk.Options;
66

7+
using com.chronoxor.simple;
8+
using com.chronoxor.simple.FBE;
9+
710
namespace ProtoServer
811
{
9-
class ProtoSessionSender : FBE.simple.Sender, FBE.simple.ISenderListener
12+
class ProtoSessionSender : Sender, ISenderListener
1013
{
1114
public ProtoSession Session { get; }
1215

@@ -18,13 +21,13 @@ public long OnSend(byte[] buffer, long offset, long size)
1821
}
1922
}
2023

21-
class ProtoSessionReceiver : FBE.simple.Receiver, FBE.simple.IReceiverListener
24+
class ProtoSessionReceiver : Receiver, IReceiverListener
2225
{
2326
public ProtoSession Session { get; }
2427

2528
public ProtoSessionReceiver(ProtoSession session) { Session = session; }
2629

27-
public void OnReceive(simple.SimpleRequest request) { Session.OnReceive(request); }
30+
public void OnReceive(SimpleRequest request) { Session.OnReceive(request); }
2831
}
2932

3033
class ProtoSession : TcpSession
@@ -49,18 +52,18 @@ protected override void OnError(SocketError error)
4952
}
5053

5154
// Protocol handlers
52-
public void OnReceive(simple.SimpleRequest request)
55+
public void OnReceive(SimpleRequest request)
5356
{
5457
// Send response
55-
simple.SimpleResponse response = simple.SimpleResponse.Default;
58+
SimpleResponse response = SimpleResponse.Default;
5659
response.id = request.id;
5760
response.Hash = 0;
5861
response.Length = (uint)request.Message.Length;
5962
Sender.Send(response);
6063
}
6164
}
6265

63-
class ProtoSender : FBE.simple.Sender, FBE.simple.ISenderListener
66+
class ProtoSender : Sender, ISenderListener
6467
{
6568
public ProtoServer Server { get; }
6669

proto/fbe.cs renamed to proto/com.chronoxor.fbe.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
// Automatically generated by the Fast Binary Encoding compiler, do not modify!
2-
// https://github.com/chronoxor/FastBinaryEncoding
3-
// Source: FBE
4-
// Version: 1.8.0.0
1+
//------------------------------------------------------------------------------
2+
// <auto-generated>
3+
// Automatically generated by the Fast Binary Encoding compiler, do not modify!
4+
// https://github.com/chronoxor/FastBinaryEncoding
5+
// Source: FBE
6+
// FBE version: 1.9.0.0
7+
//
8+
// Changes to this file may cause incorrect behavior and will be lost if
9+
// the code is regenerated.
10+
// </auto-generated>
11+
//------------------------------------------------------------------------------
512

613
using System;
714
using System.Collections.Generic;
@@ -15,7 +22,7 @@
1522
using System.Threading;
1623
using System.Threading.Tasks;
1724

18-
namespace FBE {
25+
namespace com.chronoxor.FBE {
1926

2027
// Fast Binary Encoding UUID generator
2128
public static class UuidGenerator
@@ -5977,4 +5984,4 @@ public void Receive(byte[] buffer, long offset, long size)
59775984
internal abstract bool OnReceive(long type, byte[] buffer, long offset, long size);
59785985
}
59795986

5980-
} // namespace FBE
5987+
} // namespace com.chronoxor.FBE

0 commit comments

Comments
 (0)