Skip to content

Commit 0e61f9b

Browse files
committed
replaced *RequestInfo with *PackageInfo; and allow commands' keys are generic;
1 parent 97de8a8 commit 0e61f9b

File tree

70 files changed

+493
-456
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+493
-456
lines changed

Dlr/DynamicCommand.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
using SuperSocket.SocketBase.Command;
99
using SuperSocket.SocketBase.Protocol;
1010
using SuperSocket.SocketBase.Metadata;
11+
using SuperSocket.ProtoBase;
1112

1213
namespace SuperSocket.Dlr
1314
{
1415
class DynamicCommand<TAppSession, TRequestInfo> : ICommand<TAppSession, TRequestInfo>, ICommandFilterProvider
1516
where TAppSession : IAppSession, IAppSession<TAppSession, TRequestInfo>, new()
16-
where TRequestInfo : IRequestInfo
17+
where TRequestInfo : IPackageInfo
1718
{
1819
private Action<TAppSession, TRequestInfo> m_DynamicExecuteCommand;
1920

Facility/PolicyServer/PolicyReceiveFilter.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace SuperSocket.Facility.PolicyServer
1010
/// <summary>
1111
/// PolicyReceiveFilter
1212
/// </summary>
13-
class PolicyReceiveFilter : FixedSizeReceiveFilter<StringRequestInfo>
13+
class PolicyReceiveFilter : FixedSizeReceiveFilter<StringPackageInfo>
1414
{
1515
private const string m_DefaultRequestInfoKey = "REQU";
1616

@@ -24,9 +24,9 @@ public PolicyReceiveFilter(int size)
2424

2525
}
2626

27-
public override StringRequestInfo ResolvePackage(IList<ArraySegment<byte>> packageData)
27+
public override StringPackageInfo ResolvePackage(IList<ArraySegment<byte>> packageData)
2828
{
29-
return new StringRequestInfo(m_DefaultRequestInfoKey, Encoding.UTF8.GetString(packageData), null);
29+
return new StringPackageInfo(m_DefaultRequestInfoKey, Encoding.UTF8.GetString(packageData), null);
3030
}
3131
}
3232
}

Facility/PolicyServer/PolicyReceiveFilterFactory.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
namespace SuperSocket.Facility.PolicyServer
1111
{
12-
class PolicyReceiveFilterFactory : IReceiveFilterFactory<StringRequestInfo>
12+
class PolicyReceiveFilterFactory : IReceiveFilterFactory<StringPackageInfo>
1313
{
1414
/// <summary>
1515
/// Gets the size of the fix request.
@@ -35,7 +35,7 @@ public PolicyReceiveFilterFactory(int fixRequestSize)
3535
/// <param name="appSession">The app session.</param>
3636
/// <param name="remoteEndPoint">The remote end point.</param>
3737
/// <returns></returns>
38-
public IReceiveFilter<StringRequestInfo> CreateFilter(IAppServer appServer, IAppSession appSession, IPEndPoint remoteEndPoint)
38+
public IReceiveFilter<StringPackageInfo> CreateFilter(IAppServer appServer, IAppSession appSession, IPEndPoint remoteEndPoint)
3939
{
4040
return new PolicyReceiveFilter(FixRequestSize);
4141
}

Facility/PolicyServer/PolicyServer.cs

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
using System;
2+
using System.Collections.Concurrent;
23
using System.Collections.Generic;
4+
using System.IO;
35
using System.Linq;
4-
using System.Text;
5-
using SuperSocket.SocketBase;
6-
using SuperSocket.SocketBase.Config;
7-
using SuperSocket.Common;
86
using System.Net;
9-
using System.IO;
107
using System.Net.Sockets;
11-
using System.Threading.Tasks;
8+
using System.Text;
129
using System.Threading;
13-
using System.Collections.Concurrent;
10+
using System.Threading.Tasks;
11+
using SuperSocket.Common;
12+
using SuperSocket.ProtoBase;
13+
using SuperSocket.SocketBase;
1414
using SuperSocket.SocketBase.Command;
15+
using SuperSocket.SocketBase.Config;
1516
using SuperSocket.SocketBase.Protocol;
1617

1718
namespace SuperSocket.Facility.PolicyServer
1819
{
1920
/// <summary>
2021
/// PolicyServer base class
2122
/// </summary>
22-
public abstract class PolicyServer : AppServer<PolicySession, StringRequestInfo>
23+
public abstract class PolicyServer : AppServer<PolicySession, StringPackageInfo>
2324
{
2425
private string m_PolicyFile;
2526
private string m_PolicyRequest = "<policy-file-request/>";
@@ -74,7 +75,7 @@ protected override bool Setup(IRootConfig rootConfig, IServerConfig config)
7475

7576
PolicyResponse = SetupPolicyResponse(File.ReadAllBytes(m_PolicyFile));
7677

77-
this.NewRequestReceived += new RequestHandler<PolicySession, StringRequestInfo>(PolicyServer_NewRequestReceived);
78+
this.NewRequestReceived += new RequestHandler<PolicySession, StringPackageInfo>(PolicyServer_NewRequestReceived);
7879

7980
return true;
8081
}
@@ -99,7 +100,7 @@ protected virtual byte[] GetPolicyFileResponse(IPEndPoint clientEndPoint)
99100
return PolicyResponse;
100101
}
101102

102-
void PolicyServer_NewRequestReceived(PolicySession session, StringRequestInfo requestInfo)
103+
void PolicyServer_NewRequestReceived(PolicySession session, StringPackageInfo requestInfo)
103104
{
104105
ProcessRequest(session, requestInfo.Body);
105106
}

Facility/PolicyServer/PolicySession.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using System.Net.Sockets;
55
using System.Text;
6+
using SuperSocket.ProtoBase;
67
using SuperSocket.SocketBase;
78
using SuperSocket.SocketBase.Protocol;
89

@@ -11,7 +12,7 @@ namespace SuperSocket.Facility.PolicyServer
1112
/// <summary>
1213
/// PolicySession
1314
/// </summary>
14-
public class PolicySession : AppSession<PolicySession, StringRequestInfo>
15+
public class PolicySession : AppSession<PolicySession, StringPackageInfo>
1516
{
1617

1718
}

SocketBase/Protocol/BasicRequestInfoParser.cs renamed to ProtoBase/BasicPackageInfoParser.cs

+11-11
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
using System.Text;
55
using SuperSocket.ProtoBase;
66

7-
namespace SuperSocket.SocketBase.Protocol
7+
namespace SuperSocket.ProtoBase
88
{
99
/// <summary>
10-
/// Basic request info parser, which parse request info by separating
10+
/// Basic package info parser, which parse package info by separating
1111
/// </summary>
12-
public class BasicRequestInfoParser : IStringPackageParser<StringRequestInfo>
12+
public class BasicPackageInfoParser : IStringPackageParser<StringPackageInfo>
1313
{
1414
private readonly string m_Spliter;
1515
private readonly string[] m_ParameterSpliters;
@@ -19,35 +19,35 @@ public class BasicRequestInfoParser : IStringPackageParser<StringRequestInfo>
1919
/// <summary>
2020
/// The default singlegton instance
2121
/// </summary>
22-
public static readonly BasicRequestInfoParser DefaultInstance = new BasicRequestInfoParser();
22+
public static readonly BasicPackageInfoParser DefaultInstance = new BasicPackageInfoParser();
2323

2424
/// <summary>
25-
/// Initializes a new instance of the <see cref="BasicRequestInfoParser"/> class.
25+
/// Initializes a new instance of the <see cref="BasicPackageInfoParser"/> class.
2626
/// </summary>
27-
public BasicRequestInfoParser()
27+
public BasicPackageInfoParser()
2828
: this(m_OneSpace, m_OneSpace)
2929
{
3030
}
3131

3232
/// <summary>
33-
/// Initializes a new instance of the <see cref="BasicRequestInfoParser"/> class.
33+
/// Initializes a new instance of the <see cref="BasicPackageInfoParser"/> class.
3434
/// </summary>
3535
/// <param name="spliter">The spliter between command name and command parameters.</param>
3636
/// <param name="parameterSpliter">The parameter spliter.</param>
37-
public BasicRequestInfoParser(string spliter, string parameterSpliter)
37+
public BasicPackageInfoParser(string spliter, string parameterSpliter)
3838
{
3939
m_Spliter = spliter;
4040
m_ParameterSpliters = new string[] { parameterSpliter };
4141
}
4242

43-
#region IRequestInfoParser<StringRequestInfo> Members
43+
#region IPackageInfoParser<StringPackageInfo> Members
4444

4545
/// <summary>
4646
/// Parses the request info.
4747
/// </summary>
4848
/// <param name="source">The source.</param>
4949
/// <returns></returns>
50-
public StringRequestInfo Parse(string source)
50+
public StringPackageInfo Parse(string source)
5151
{
5252
int pos = source.IndexOf(m_Spliter);
5353

@@ -64,7 +64,7 @@ public StringRequestInfo Parse(string source)
6464
name = source;
6565
}
6666

67-
return new StringRequestInfo(name, param,
67+
return new StringPackageInfo(name, param,
6868
param.Split(m_ParameterSpliters, StringSplitOptions.RemoveEmptyEntries));
6969
}
7070

ProtoBase/StringPackageInfo.cs

+20
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,25 @@ public StringPackageInfo(string key, string body, string[] parameters)
4646
Body = body;
4747
Parameters = parameters;
4848
}
49+
50+
/// <summary>
51+
/// Gets the first param.
52+
/// </summary>
53+
/// <returns></returns>
54+
public string GetFirstParam()
55+
{
56+
if (Parameters.Length > 0)
57+
return Parameters[0];
58+
59+
return string.Empty;
60+
}
61+
62+
/// <summary>
63+
/// Gets the <see cref="System.String"/> at the specified index.
64+
/// </summary>
65+
public string this[int index]
66+
{
67+
get { return Parameters[index]; }
68+
}
4969
}
5070
}

ProtoBase/SuperSocket.ProtoBase.Net40.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<Reference Include="Microsoft.CSharp" />
4646
</ItemGroup>
4747
<ItemGroup>
48+
<Compile Include="BasicPackageInfoParser.cs" />
4849
<Compile Include="BeginEndMarkReceiveFilter.cs" />
4950
<Compile Include="BufferListReader.cs" />
5051
<Compile Include="BufferListStream.cs" />

ProtoBase/SuperSocket.ProtoBase.Net45.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
<Reference Include="Microsoft.CSharp" />
4949
</ItemGroup>
5050
<ItemGroup>
51+
<Compile Include="BasicPackageInfoParser.cs" />
5152
<Compile Include="BeginEndMarkReceiveFilter.cs" />
5253
<Compile Include="BufferedPackageInfo.cs" />
5354
<Compile Include="BufferList.cs" />

QuickStart/CustomProtocol/Command/ECHO.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
namespace SuperSocket.QuickStart.CustomProtocol.Command
1010
{
11-
public class ECHO : CommandBase<CustomProtocolSession, BinaryRequestInfo>
11+
public class ECHO : CommandBase<CustomProtocolSession, BufferedPackageInfo>
1212
{
13-
public override void ExecuteCommand(CustomProtocolSession session, BinaryRequestInfo requestInfo)
13+
public override void ExecuteCommand(CustomProtocolSession session, BufferedPackageInfo requestInfo)
1414
{
1515
session.Send(Encoding.ASCII.GetString(requestInfo.Body) + Environment.NewLine);
1616
}

QuickStart/CustomProtocol/CustomProtocolServer.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Text;
5+
using SuperSocket.ProtoBase;
56
using SuperSocket.SocketBase;
67
using SuperSocket.SocketBase.Command;
78
using SuperSocket.SocketBase.Protocol;
@@ -20,10 +21,10 @@ namespace SuperSocket.QuickStart.CustomProtocol
2021
/// len: the lenght of request data, two bytes, 0x00 0x02 = 2, 0x01 0x01 = 257
2122
/// request data: the body of the request
2223
/// </summary>
23-
class CustomProtocolServer : AppServer<CustomProtocolSession, BinaryRequestInfo>
24+
class CustomProtocolServer : AppServer<CustomProtocolSession, BufferedPackageInfo>
2425
{
2526
public CustomProtocolServer()
26-
: base(new DefaultReceiveFilterFactory<MyReceiveFilter, BinaryRequestInfo>())
27+
: base(new DefaultReceiveFilterFactory<MyReceiveFilter, BufferedPackageInfo>())
2728
{
2829

2930
}

QuickStart/CustomProtocol/CustomProtocolSession.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Text;
5+
using SuperSocket.ProtoBase;
56
using SuperSocket.SocketBase;
67
using SuperSocket.SocketBase.Command;
78
using SuperSocket.SocketBase.Protocol;
89

910
namespace SuperSocket.QuickStart.CustomProtocol
1011
{
11-
public class CustomProtocolSession : AppSession<CustomProtocolSession, BinaryRequestInfo>
12+
public class CustomProtocolSession : AppSession<CustomProtocolSession, BufferedPackageInfo>
1213
{
1314
protected override void HandleException(Exception e)
1415
{

QuickStart/CustomProtocol/MyReceiveFilter.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
namespace SuperSocket.QuickStart.CustomProtocol
1010
{
11-
class MyReceiveFilter : FixedHeaderReceiveFilter<BinaryRequestInfo>
11+
class MyReceiveFilter : FixedHeaderReceiveFilter<BufferedPackageInfo>
1212
{
1313
public MyReceiveFilter()
1414
: base(6)
@@ -25,13 +25,13 @@ protected override int GetBodyLengthFromHeader(IList<ArraySegment<byte>> package
2525
}
2626
}
2727

28-
public override BinaryRequestInfo ResolvePackage(IList<ArraySegment<byte>> packageData)
28+
public override BufferedPackageInfo ResolvePackage(IList<ArraySegment<byte>> packageData)
2929
{
3030
using (var reader = this.GetBufferReader(packageData))
3131
{
3232
var key = reader.ReadString(4, Encoding.UTF8);
3333
reader.Skip(2);
34-
return new BinaryRequestInfo(key, reader.Take((int)reader.Length - 6));
34+
return new BufferedPackageInfo(key, reader.Take((int)reader.Length - 6));
3535
}
3636
}
3737
}

SocketBase/AppServer.cs

+6-5
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using System.Threading;
1212
using System.Threading.Tasks;
1313
using SuperSocket.Common;
14+
using SuperSocket.ProtoBase;
1415
using SuperSocket.SocketBase.Command;
1516
using SuperSocket.SocketBase.Config;
1617
using SuperSocket.SocketBase.Protocol;
@@ -36,7 +37,7 @@ public AppServer()
3637
/// Initializes a new instance of the <see cref="AppServer"/> class.
3738
/// </summary>
3839
/// <param name="receiveFilterFactory">The Receive filter factory.</param>
39-
public AppServer(IReceiveFilterFactory<StringRequestInfo> receiveFilterFactory)
40+
public AppServer(IReceiveFilterFactory<StringPackageInfo> receiveFilterFactory)
4041
: base(receiveFilterFactory)
4142
{
4243

@@ -47,8 +48,8 @@ public AppServer(IReceiveFilterFactory<StringRequestInfo> receiveFilterFactory)
4748
/// AppServer class
4849
/// </summary>
4950
/// <typeparam name="TAppSession">The type of the app session.</typeparam>
50-
public class AppServer<TAppSession> : AppServer<TAppSession, StringRequestInfo>
51-
where TAppSession : AppSession<TAppSession, StringRequestInfo>, IAppSession, new()
51+
public class AppServer<TAppSession> : AppServer<TAppSession, StringPackageInfo>
52+
where TAppSession : AppSession<TAppSession, StringPackageInfo>, IAppSession, new()
5253
{
5354
/// <summary>
5455
/// Initializes a new instance of the <see cref="AppServer&lt;TAppSession&gt;"/> class.
@@ -63,13 +64,13 @@ public AppServer()
6364
/// Initializes a new instance of the <see cref="AppServer&lt;TAppSession&gt;"/> class.
6465
/// </summary>
6566
/// <param name="receiveFilterFactory">The Receive filter factory.</param>
66-
public AppServer(IReceiveFilterFactory<StringRequestInfo> receiveFilterFactory)
67+
public AppServer(IReceiveFilterFactory<StringPackageInfo> receiveFilterFactory)
6768
: base(receiveFilterFactory)
6869
{
6970

7071
}
7172

72-
internal override IReceiveFilterFactory<StringRequestInfo> CreateDefaultReceiveFilterFactory()
73+
internal override IReceiveFilterFactory<StringPackageInfo> CreateDefaultReceiveFilterFactory()
7374
{
7475
return new CommandLineReceiveFilterFactory(TextEncoding);
7576
}

SocketBase/AppServerBase.Net45.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
using System.Linq;
55
using System.Text;
66
using System.Threading.Tasks;
7+
using SuperSocket.ProtoBase;
78
using SuperSocket.SocketBase.Config;
89
using SuperSocket.SocketBase.Protocol;
910

1011
namespace SuperSocket.SocketBase
1112
{
12-
public abstract partial class AppServer<TAppSession, TRequestInfo>
13-
where TRequestInfo : class, IRequestInfo
14-
where TAppSession : AppSession<TAppSession, TRequestInfo>, IAppSession, new()
13+
public abstract partial class AppServer<TAppSession, TPackageInfo, TKey>
14+
where TPackageInfo : class, IPackageInfo<TKey>
15+
where TAppSession : AppSession<TAppSession, TPackageInfo, TKey>, IAppSession, new()
1516
{
1617
partial void SetDefaultCulture(IRootConfig rootConfig, IServerConfig config)
1718
{

0 commit comments

Comments
 (0)