Skip to content

Commit 117ad03

Browse files
committed
Move ConnectionUriParser class to QpClientOptions class.
1 parent f5ca564 commit 117ad03

File tree

17 files changed

+196
-187
lines changed

17 files changed

+196
-187
lines changed

QpTestClient/Forms/GenerateConnectionUrl.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ private void generate()
3535
var includePassword = cbIncludePassword.Checked;
3636
var includeOtherProperty = cbIncludeOtherProperty.Checked;
3737

38-
txtOutput.Text = Quick.Protocol.AllClients.ConnectionUriParser.GenerateConnectionUri(
39-
connectionContext.ConnectionInfo.QpClientOptions,
38+
txtOutput.Text = connectionContext.ConnectionInfo.QpClientOptions.ToUri(
4039
includePassword,
4140
includeOtherProperty
4241
).ToString();

QpTestClient/Program.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ static class Program
1414
[STAThread]
1515
static void Main()
1616
{
17+
Quick.Protocol.QpAllClients.RegisterUriSchema();
18+
1719
QpClientTypeManager.Instance.Init();
1820

1921
Application.SetHighDpiMode(HighDpiMode.SystemAware);

QpTestClient/QuickConnectForm.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System;
1+
using Quick.Protocol.Utils;
2+
using System;
23
using System.Collections.Generic;
34
using System.ComponentModel;
45
using System.Data;
@@ -44,18 +45,22 @@ private void btnOk_Click(object sender, EventArgs e)
4445
return;
4546
}
4647
var uri = new Uri(url);
47-
var connectionInfo = Quick.Protocol.AllClients.ConnectionUriParser.Parse(uri);
48-
if (connectionInfo==null)
48+
Quick.Protocol.QpClientOptions options = null;
49+
try
4950
{
50-
MessageBox.Show("无效的URL!", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
51+
options = Quick.Protocol.QpClientOptions.Parse(uri);
52+
}
53+
catch (Exception ex)
54+
{
55+
MessageBox.Show("解析URL时出错,原因:" + ExceptionUtils.GetExceptionString(ex), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
5156
return;
5257
}
53-
connectionInfo.QpClientOptions.Password = password;
58+
options.Password = password;
5459
ConnectionInfo = new TestConnectionInfo()
5560
{
5661
Name = name,
57-
QpClientTypeName = connectionInfo.QpClientType.FullName,
58-
QpClientOptions = connectionInfo.QpClientOptions
62+
QpClientTypeName = options.GetQpClientType().FullName,
63+
QpClientOptions = options
5964
};
6065
DialogResult = DialogResult.OK;
6166
Close();

Quick.Protocol.AllClients/ConnectionInfo.cs

Lines changed: 0 additions & 18 deletions
This file was deleted.

Quick.Protocol.AllClients/ConnectionUriParser.cs

Lines changed: 0 additions & 154 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace Quick.Protocol
6+
{
7+
public class QpAllClients
8+
{
9+
public static void RegisterUriSchema()
10+
{
11+
Pipeline.QpPipelineClientOptions.RegisterUriSchema();
12+
SerialPort.QpSerialPortClientOptions.RegisterUriSchema();
13+
Tcp.QpTcpClientOptions.RegisterUriSchema();
14+
WebSocket.Client.QpWebSocketClientOptions.RegisterUriSchema();
15+
}
16+
}
17+
}

Quick.Protocol.Pipeline/QpPipelineClientOptions.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ namespace Quick.Protocol.Pipeline
77
{
88
public class QpPipelineClientOptions : QpClientOptions
99
{
10+
public const string URI_SCHEMA = "pipe";
11+
1012
[Category("常用")]
1113
[DisplayName("服务器名称")]
1214
public string ServerName { get; set; } = ".";
@@ -23,5 +25,19 @@ public override void Check()
2325
}
2426

2527
public override string GetConnectionInfo() => $"{ServerName}\\{PipeName}";
28+
29+
public override Type GetQpClientType() => typeof(QpPipelineClient);
30+
31+
protected override string ToUriBasic(HashSet<string> ignorePropertyNames)
32+
{
33+
ignorePropertyNames.Add(nameof(ServerName));
34+
ignorePropertyNames.Add(nameof(PipeName));
35+
return $"{URI_SCHEMA}://{ServerName}/{PipeName}";
36+
}
37+
38+
public static void RegisterUriSchema()
39+
{
40+
RegisterUriSchema(URI_SCHEMA, typeof(QpPipelineClientOptions));
41+
}
2642
}
2743
}

Quick.Protocol.Pipeline/Quick.Protocol.Pipeline.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>netstandard2.0;net46</TargetFrameworks>
4+
<TargetFramework>netstandard2.0</TargetFramework>
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
66
<PackageProjectUrl>https://github.com/QuickProtocol</PackageProjectUrl>
77
<RepositoryUrl>https://github.com/QuickProtocol/QuickProtocol_CSharp</RepositoryUrl>

Quick.Protocol.SerialPort/QpSerialPortClientOptions.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ namespace Quick.Protocol.SerialPort
88
{
99
public class QpSerialPortClientOptions : QpClientOptions
1010
{
11+
public const string URI_SCHEMA = "serialport";
1112
/// <summary>
1213
/// 端口名称
1314
/// </summary>
@@ -47,5 +48,18 @@ public override void Check()
4748
}
4849

4950
public override string GetConnectionInfo() => PortName;
51+
52+
public override Type GetQpClientType() => typeof(QpSerialPortClient);
53+
54+
protected override string ToUriBasic(HashSet<string> ignorePropertyNames)
55+
{
56+
ignorePropertyNames.Add(nameof(PortName));
57+
return $"{URI_SCHEMA}://{PortName}";
58+
}
59+
60+
public static void RegisterUriSchema()
61+
{
62+
RegisterUriSchema(URI_SCHEMA, typeof(QpSerialPortClientOptions));
63+
}
5064
}
5165
}

Quick.Protocol.Tcp/QpTcpClientOptions.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace Quick.Protocol.Tcp
77
{
88
public class QpTcpClientOptions : QpClientOptions
99
{
10+
public const string URI_SCHEMA = "tcp";
1011
/// <summary>
1112
/// 主机
1213
/// </summary>
@@ -42,5 +43,19 @@ public override void Check()
4243
}
4344

4445
public override string GetConnectionInfo() => $"{Host}:{Port}";
46+
47+
public override Type GetQpClientType() => typeof(QpTcpClient);
48+
49+
protected override string ToUriBasic(HashSet<string> ignorePropertyNames)
50+
{
51+
ignorePropertyNames.Add(nameof(Host));
52+
ignorePropertyNames.Add(nameof(Port));
53+
return $"{URI_SCHEMA}://{Host}:{Port}";
54+
}
55+
56+
public static void RegisterUriSchema()
57+
{
58+
RegisterUriSchema(URI_SCHEMA, typeof(QpTcpClientOptions));
59+
}
4560
}
4661
}

0 commit comments

Comments
 (0)