Skip to content

Commit 7808778

Browse files
authored
Merge branch 'main' into releases/Smdn.Net.EchonetLite.RouteB.SkStackIP-2.1.0-1766497898
2 parents d453d4c + 87e4b85 commit 7808778

12 files changed

+839
-40
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
// Smdn.Net.EchonetLite.Primitives.dll (Smdn.Net.EchonetLite.Primitives-2.1.0)
2+
// Name: Smdn.Net.EchonetLite.Primitives
3+
// AssemblyVersion: 2.1.0.0
4+
// InformationalVersion: 2.1.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
5+
// TargetFramework: .NETCoreApp,Version=v10.0
6+
// Configuration: Release
7+
// Metadata: IsTrimmable=True
8+
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
9+
// Metadata: RepositoryBranch=main
10+
// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
11+
// Referenced assemblies:
12+
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
13+
// System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
14+
// System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
15+
// System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
16+
// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
17+
#nullable enable annotations
18+
19+
using System;
20+
using System.Buffers;
21+
using System.Collections.Generic;
22+
using System.Net;
23+
using System.Threading;
24+
using System.Threading.Tasks;
25+
using Microsoft.Extensions.Logging;
26+
using Smdn.Net.EchonetLite;
27+
28+
namespace Smdn.Net.EchonetLite {
29+
public interface IEchonetLiteHandler {
30+
Func<IPAddress, ReadOnlyMemory<byte>, CancellationToken, ValueTask>? ReceiveCallback { get; set; }
31+
32+
ValueTask SendAsync(ReadOnlyMemory<byte> data, CancellationToken cancellationToken);
33+
ValueTask SendToAsync(IPAddress remoteAddress, ReadOnlyMemory<byte> data, CancellationToken cancellationToken);
34+
}
35+
36+
public interface IEchonetObjectSpecification {
37+
byte ClassCode { get; }
38+
byte ClassGroupCode { get; }
39+
IEnumerable<IEchonetPropertySpecification> Properties { get; }
40+
}
41+
42+
public interface IEchonetPropertySpecification {
43+
bool CanAnnounceStatusChange { get; }
44+
bool CanGet { get; }
45+
bool CanSet { get; }
46+
byte Code { get; }
47+
48+
bool IsAcceptableValue(ReadOnlySpan<byte> edt);
49+
}
50+
}
51+
52+
namespace Smdn.Net.EchonetLite.Transport {
53+
public abstract class EchonetLiteHandler :
54+
IAsyncDisposable,
55+
IDisposable,
56+
IEchonetLiteHandler
57+
{
58+
protected class ReceivedFromUnknownAddressException : InvalidOperationException {
59+
public ReceivedFromUnknownAddressException() {}
60+
public ReceivedFromUnknownAddressException(string message) {}
61+
public ReceivedFromUnknownAddressException(string message, Exception? innerException) {}
62+
}
63+
64+
public const int DefaultPort = 3610;
65+
66+
protected EchonetLiteHandler(ILogger? logger, IServiceProvider? serviceProvider) {}
67+
68+
protected bool IsDisposed { get; }
69+
protected bool IsReceiving { get; }
70+
public abstract IPAddress? LocalAddress { get; }
71+
protected ILogger? Logger { get; }
72+
public Func<IPAddress, ReadOnlyMemory<byte>, CancellationToken, ValueTask>? ReceiveCallback { get; set; }
73+
74+
protected virtual void Dispose(bool disposing) {}
75+
public void Dispose() {}
76+
public async ValueTask DisposeAsync() {}
77+
protected virtual async ValueTask DisposeAsyncCore() {}
78+
protected virtual bool HandleReceiveTaskException(Exception exception) {}
79+
protected abstract ValueTask<IPAddress> ReceiveAsyncCore(IBufferWriter<byte> buffer, CancellationToken cancellationToken);
80+
public ValueTask SendAsync(ReadOnlyMemory<byte> data, CancellationToken cancellationToken) {}
81+
protected abstract ValueTask SendAsyncCore(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken);
82+
public ValueTask SendToAsync(IPAddress remoteAddress, ReadOnlyMemory<byte> data, CancellationToken cancellationToken) {}
83+
protected abstract ValueTask SendToAsyncCore(IPAddress remoteAddress, ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken);
84+
protected void StartReceiving() {}
85+
protected void StartReceiving(TaskFactory? taskFactoryForReceiving) {}
86+
protected async ValueTask StopReceivingAsync() {}
87+
protected virtual void ThrowIfDisposed() {}
88+
protected void ThrowIfNotReceiving() {}
89+
protected void ThrowIfReceiving() {}
90+
}
91+
}
92+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
93+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

doc/api-list/Smdn.Net.EchonetLite.Primitives/Smdn.Net.EchonetLite.Primitives-net8.0.apilist.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
// Smdn.Net.EchonetLite.Primitives.dll (Smdn.Net.EchonetLite.Primitives-2.0.2)
1+
// Smdn.Net.EchonetLite.Primitives.dll (Smdn.Net.EchonetLite.Primitives-2.1.0)
22
// Name: Smdn.Net.EchonetLite.Primitives
3-
// AssemblyVersion: 2.0.2.0
4-
// InformationalVersion: 2.0.2+10cb847a99b6c2ad30297280debeb56a41a346bb
3+
// AssemblyVersion: 2.1.0.0
4+
// InformationalVersion: 2.1.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
55
// TargetFramework: .NETCoreApp,Version=v8.0
66
// Configuration: Release
7+
// Metadata: IsTrimmable=True
8+
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
9+
// Metadata: RepositoryBranch=main
10+
// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
711
// Referenced assemblies:
812
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
913
// System.ComponentModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -85,5 +89,5 @@ protected void ThrowIfNotReceiving() {}
8589
protected void ThrowIfReceiving() {}
8690
}
8791
}
88-
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.6.0.0.
89-
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.4.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
92+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
93+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

doc/api-list/Smdn.Net.EchonetLite.Primitives/Smdn.Net.EchonetLite.Primitives-netstandard2.1.apilist.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
// Smdn.Net.EchonetLite.Primitives.dll (Smdn.Net.EchonetLite.Primitives-2.0.2)
1+
// Smdn.Net.EchonetLite.Primitives.dll (Smdn.Net.EchonetLite.Primitives-2.1.0)
22
// Name: Smdn.Net.EchonetLite.Primitives
3-
// AssemblyVersion: 2.0.2.0
4-
// InformationalVersion: 2.0.2+10cb847a99b6c2ad30297280debeb56a41a346bb
3+
// AssemblyVersion: 2.1.0.0
4+
// InformationalVersion: 2.1.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
55
// TargetFramework: .NETStandard,Version=v2.1
66
// Configuration: Release
7+
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
8+
// Metadata: RepositoryBranch=main
9+
// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
710
// Referenced assemblies:
811
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
912
// netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
@@ -82,5 +85,5 @@ protected void ThrowIfNotReceiving() {}
8285
protected void ThrowIfReceiving() {}
8386
}
8487
}
85-
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.6.0.0.
86-
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.4.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
88+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
89+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.2.0)
2+
// Name: Smdn.Net.EchonetLite.RouteB.Primitives
3+
// AssemblyVersion: 2.2.0.0
4+
// InformationalVersion: 2.2.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
5+
// TargetFramework: .NETCoreApp,Version=v10.0
6+
// Configuration: Release
7+
// Metadata: IsTrimmable=True
8+
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
9+
// Metadata: RepositoryBranch=main
10+
// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
11+
// Referenced assemblies:
12+
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
13+
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
14+
// Smdn.Net.EchonetLite.Primitives, Version=2.0.0.0, Culture=neutral
15+
// System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
16+
// System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
17+
// System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
18+
// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
19+
#nullable enable annotations
20+
21+
using System;
22+
using System.Buffers;
23+
using System.Net;
24+
using System.Threading;
25+
using System.Threading.Tasks;
26+
using Microsoft.Extensions.DependencyInjection;
27+
using Microsoft.Extensions.Logging;
28+
using Smdn.Net.EchonetLite.RouteB.Credentials;
29+
using Smdn.Net.EchonetLite.RouteB.Transport;
30+
using Smdn.Net.EchonetLite.Transport;
31+
32+
namespace Smdn.Net.EchonetLite.RouteB.Credentials {
33+
public interface IRouteBCredential : IDisposable {
34+
void WriteIdTo(IBufferWriter<byte> buffer);
35+
void WritePasswordTo(IBufferWriter<byte> buffer);
36+
}
37+
38+
public interface IRouteBCredentialIdentity {
39+
}
40+
41+
public interface IRouteBCredentialProvider {
42+
IRouteBCredential GetCredential(IRouteBCredentialIdentity identity);
43+
}
44+
45+
public static class RouteBCredentials {
46+
public const int AuthenticationIdLength = 32;
47+
public const int PasswordLength = 12;
48+
}
49+
}
50+
51+
namespace Smdn.Net.EchonetLite.RouteB.DependencyInjection {
52+
public interface IRouteBServiceBuilder<TServiceKey> {
53+
Func<TServiceKey, string?>? OptionsNameSelector { get; }
54+
TServiceKey ServiceKey { get; }
55+
IServiceCollection Services { get; }
56+
}
57+
58+
public static class IRouteBServiceBuilderExtensions {
59+
public static string? GetOptionsName<TServiceKey>(this IRouteBServiceBuilder<TServiceKey> builder) {}
60+
}
61+
}
62+
63+
namespace Smdn.Net.EchonetLite.RouteB.Transport {
64+
[Obsolete("Use IRouteBServiceBuilder instead.")]
65+
public interface IRouteBEchonetLiteHandlerBuilder {
66+
IServiceCollection Services { get; }
67+
}
68+
69+
public interface IRouteBEchonetLiteHandlerFactory {
70+
ValueTask<RouteBEchonetLiteHandler> CreateAsync(CancellationToken cancellationToken);
71+
}
72+
73+
public abstract class RouteBEchonetLiteHandler : EchonetLiteHandler {
74+
protected RouteBEchonetLiteHandler(ILogger? logger, IServiceProvider? serviceProvider) {}
75+
76+
public abstract IPAddress? PeerAddress { get; }
77+
78+
public ValueTask ConnectAsync(IRouteBCredential credential, CancellationToken cancellationToken = default) {}
79+
protected abstract ValueTask ConnectAsyncCore(IRouteBCredential credential, CancellationToken cancellationToken);
80+
public ValueTask DisconnectAsync(CancellationToken cancellationToken = default) {}
81+
protected abstract ValueTask DisconnectAsyncCore(CancellationToken cancellationToken);
82+
}
83+
}
84+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
85+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-net8.0.apilist.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.1.0)
1+
// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.2.0)
22
// Name: Smdn.Net.EchonetLite.RouteB.Primitives
3-
// AssemblyVersion: 2.1.0.0
4-
// InformationalVersion: 2.1.0+8350a1992a3cc375c86febf128c7a1ab32401211
3+
// AssemblyVersion: 2.2.0.0
4+
// InformationalVersion: 2.2.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
55
// TargetFramework: .NETCoreApp,Version=v8.0
66
// Configuration: Release
7+
// Metadata: IsTrimmable=True
8+
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
9+
// Metadata: RepositoryBranch=main
10+
// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
711
// Referenced assemblies:
812
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
913
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
@@ -77,5 +81,5 @@ public ValueTask DisconnectAsync(CancellationToken cancellationToken = default)
7781
protected abstract ValueTask DisconnectAsyncCore(CancellationToken cancellationToken);
7882
}
7983
}
80-
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.6.0.0.
81-
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.4.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
84+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
85+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

doc/api-list/Smdn.Net.EchonetLite.RouteB.Primitives/Smdn.Net.EchonetLite.RouteB.Primitives-netstandard2.1.apilist.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.1.0)
1+
// Smdn.Net.EchonetLite.RouteB.Primitives.dll (Smdn.Net.EchonetLite.RouteB.Primitives-2.2.0)
22
// Name: Smdn.Net.EchonetLite.RouteB.Primitives
3-
// AssemblyVersion: 2.1.0.0
4-
// InformationalVersion: 2.1.0+8350a1992a3cc375c86febf128c7a1ab32401211
3+
// AssemblyVersion: 2.2.0.0
4+
// InformationalVersion: 2.2.0+eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
55
// TargetFramework: .NETStandard,Version=v2.1
66
// Configuration: Release
7+
// Metadata: RepositoryUrl=https://github.com/smdn/Smdn.Net.EchonetLite
8+
// Metadata: RepositoryBranch=main
9+
// Metadata: RepositoryCommit=eceaa1ab8c33ec84da009bb0a40f14181fd5e97b
710
// Referenced assemblies:
811
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
912
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
@@ -74,5 +77,5 @@ public ValueTask DisconnectAsync(CancellationToken cancellationToken = default)
7477
protected abstract ValueTask DisconnectAsyncCore(CancellationToken cancellationToken);
7578
}
7679
}
77-
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.6.0.0.
78-
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.4.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
80+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.1.0.
81+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

0 commit comments

Comments
 (0)