Releases: smdn/Smdn.TPSmartHomeDevices
Releases · smdn/Smdn.TPSmartHomeDevices
Smdn.TPSmartHomeDevices.Primitives version 1.0.1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2023-05-03 update package version
- 2023-05-02 make sure that URL paths are delimited by '/'
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs
index 911c0ec..b131bc1 100644
--- a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs
@@ -1,105 +1,105 @@
-// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.0)
+// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.1)
// Name: Smdn.TPSmartHomeDevices.Primitives
-// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0+2f8665ad485a16dee6305868cbf80f3089f4d60d
+// AssemblyVersion: 1.0.1.0
+// InformationalVersion: 1.0.1+934aee650dc331b389f51ddc76cb1f8042d47bf5
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Smdn.TPSmartHomeDevices;
using Smdn.TPSmartHomeDevices.Json;
namespace Smdn.TPSmartHomeDevices {
public interface IDeviceEndPoint {
ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default);
}
public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
IDeviceEndPoint Create(TAddress address);
}
public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
void Invalidate();
}
public static class DeviceEndPoint {
public static IDeviceEndPoint Create(EndPoint endPoint) {}
public static IDeviceEndPoint Create(IPAddress ipAddress) {}
public static IDeviceEndPoint Create(string host) {}
public static IDeviceEndPoint Create<TAddress>(TAddress address, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
}
public static class DeviceEndPointFactoryServiceCollectionExtensions {
public static IServiceCollection AddDeviceEndPointFactory<TAddress>(this IServiceCollection services, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
}
public class DeviceEndPointResolutionException : Exception {
public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint) {}
public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint, string message, Exception? innerException) {}
public IDeviceEndPoint DeviceEndPoint { get; }
}
public static class IDeviceEndPointExtensions {
public static ValueTask<EndPoint> ResolveOrThrowAsync(this IDeviceEndPoint deviceEndPoint, int defaultPort, CancellationToken cancellationToken = default) {}
}
public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
public StaticDeviceEndPoint(EndPoint endPoint) {}
public ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default) {}
public override string? ToString() {}
}
}
namespace Smdn.TPSmartHomeDevices.Json {
public sealed class GeolocationInDecimalDegreesJsonConverter : JsonConverter<decimal?> {
public GeolocationInDecimalDegreesJsonConverter() {}
public override decimal? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
public override void Write(Utf8JsonWriter writer, decimal? @value, JsonSerializerOptions options) {}
}
public sealed class MacAddressJsonConverter : JsonConverter<PhysicalAddress> {
public MacAddressJsonConverter() {}
public override PhysicalAddress? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
public override void Write(Utf8JsonWriter writer, PhysicalAddress @value, JsonSerializerOptions options) {}
}
public sealed class TimeSpanInMinutesJsonConverter : TimeSpanJsonConverter {
public TimeSpanInMinutesJsonConverter() {}
protected override TimeSpan ToTimeSpan(int @value) {}
}
public sealed class TimeSpanInSecondsJsonConverter : TimeSpanJsonConverter {
public TimeSpanInSecondsJsonConverter() {}
protected override TimeSpan ToTimeSpan(int @value) {}
}
public abstract class TimeSpanJsonConverter : JsonConverter<TimeSpan?> {
protected TimeSpanJsonConverter() {}
public override TimeSpan? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
protected abstract TimeSpan ToTimeSpan(int @value);
public override void Write(Utf8JsonWriter writer, TimeSpan? @value, JsonSerializerOptions options) {}
}
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.2.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs
index 5a69ef8..08f749b 100644
--- a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs
@@ -1,104 +1,104 @@
-// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.0)
+// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.1)
// Name: Smdn.TPSmartHomeDevices.Primitives
-// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0+2f8665ad485a16dee6305868cbf80f3089f4d60d
+// AssemblyVersion: 1.0.1.0
+// InformationalVersion: 1.0.1+934aee650dc331b389f51ddc76cb1f8042d47bf5
// TargetFramework: .NETStandard,Version=v2.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Smdn.TPSmartHomeDevices;
using Smdn.TPSmartHomeDevices.Json;
namespace Smdn.TPSmartHomeDevices {
public interface IDeviceEndPoint {
ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default);
}
public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
IDeviceEndPoint Create(TAddress address);
}
public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
void Invalidate();
}
public static class DeviceEndPoint {
public static IDeviceEndPoint Create(EndPoint endPoint) {}
public static IDeviceEndPoint Create(IPAddress ipAddress) {}
public static IDeviceEndPoint Create(string host) {}
public static IDeviceEndPoint Create<TAddress>(TAddress address, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
}
public static class DeviceEndPointFactoryServiceCollectionExtensions {
public static IServiceCollection AddDeviceEndPointFactory<TAddress>(this IServiceCollection services, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
}
public class DeviceEndPointResolutionException : Exception {
public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint) {}
public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint, string message, Exception? innerException) {}
public IDeviceEndPoint DeviceEndPoint { get; }
}
public static class IDeviceEndPointExtensions {
public static ValueTask<EndPoint> ResolveOrThrowAsync(this IDeviceEndPoint deviceEndPoint, int defaultPort, CancellationToken cancellationToken = default) {}
}
public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
public StaticDeviceEndPoint(EndPoint endPoint) {}
public ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default) {}
public override string? ToString() {}
}
}
n...
Smdn.TPSmartHomeDevices.Primitives version 1.0.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2023-05-02 update package version
- 2023-05-02 add README.md for NuGet packages
- 2023-04-28 add XML comment docs
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs
index d39c2be..911c0ec 100644
--- a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs
@@ -1,105 +1,105 @@
-// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.0-rc1)
+// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.0)
// Name: Smdn.TPSmartHomeDevices.Primitives
// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0-rc1+7ce7d5ecfff9471ef9ebdce241166784cce4cbbd
+// InformationalVersion: 1.0.0+2f8665ad485a16dee6305868cbf80f3089f4d60d
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Smdn.TPSmartHomeDevices;
using Smdn.TPSmartHomeDevices.Json;
namespace Smdn.TPSmartHomeDevices {
public interface IDeviceEndPoint {
ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default);
}
public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
IDeviceEndPoint Create(TAddress address);
}
public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
void Invalidate();
}
public static class DeviceEndPoint {
public static IDeviceEndPoint Create(EndPoint endPoint) {}
public static IDeviceEndPoint Create(IPAddress ipAddress) {}
public static IDeviceEndPoint Create(string host) {}
public static IDeviceEndPoint Create<TAddress>(TAddress address, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
}
public static class DeviceEndPointFactoryServiceCollectionExtensions {
public static IServiceCollection AddDeviceEndPointFactory<TAddress>(this IServiceCollection services, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
}
public class DeviceEndPointResolutionException : Exception {
public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint) {}
public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint, string message, Exception? innerException) {}
public IDeviceEndPoint DeviceEndPoint { get; }
}
public static class IDeviceEndPointExtensions {
public static ValueTask<EndPoint> ResolveOrThrowAsync(this IDeviceEndPoint deviceEndPoint, int defaultPort, CancellationToken cancellationToken = default) {}
}
public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
public StaticDeviceEndPoint(EndPoint endPoint) {}
public ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default) {}
public override string? ToString() {}
}
}
namespace Smdn.TPSmartHomeDevices.Json {
public sealed class GeolocationInDecimalDegreesJsonConverter : JsonConverter<decimal?> {
public GeolocationInDecimalDegreesJsonConverter() {}
public override decimal? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
public override void Write(Utf8JsonWriter writer, decimal? @value, JsonSerializerOptions options) {}
}
public sealed class MacAddressJsonConverter : JsonConverter<PhysicalAddress> {
public MacAddressJsonConverter() {}
public override PhysicalAddress? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
public override void Write(Utf8JsonWriter writer, PhysicalAddress @value, JsonSerializerOptions options) {}
}
public sealed class TimeSpanInMinutesJsonConverter : TimeSpanJsonConverter {
public TimeSpanInMinutesJsonConverter() {}
protected override TimeSpan ToTimeSpan(int @value) {}
}
public sealed class TimeSpanInSecondsJsonConverter : TimeSpanJsonConverter {
public TimeSpanInSecondsJsonConverter() {}
protected override TimeSpan ToTimeSpan(int @value) {}
}
public abstract class TimeSpanJsonConverter : JsonConverter<TimeSpan?> {
protected TimeSpanJsonConverter() {}
public override TimeSpan? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
protected abstract TimeSpan ToTimeSpan(int @value);
public override void Write(Utf8JsonWriter writer, TimeSpan? @value, JsonSerializerOptions options) {}
}
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.2.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs
index 2086cd7..5a69ef8 100644
--- a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs
@@ -1,104 +1,104 @@
-// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.0-rc1)
+// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.0)
// Name: Smdn.TPSmartHomeDevices.Primitives
// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0-rc1+7ce7d5ecfff9471ef9ebdce241166784cce4cbbd
+// InformationalVersion: 1.0.0+2f8665ad485a16dee6305868cbf80f3089f4d60d
// TargetFramework: .NETStandard,Version=v2.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Smdn.TPSmartHomeDevices;
using Smdn.TPSmartHomeDevices.Json;
namespace Smdn.TPSmartHomeDevices {
public interface IDeviceEndPoint {
ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default);
}
public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
IDeviceEndPoint Create(TAddress address);
}
public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
void Invalidate();
}
public static class DeviceEndPoint {
public static IDeviceEndPoint Create(EndPoint endPoint) {}
public static IDeviceEndPoint Create(IPAddress ipAddress) {}
public static IDeviceEndPoint Create(string host) {}
public static IDeviceEndPoint Create<TAddress>(TAddress address, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
}
public static class DeviceEndPointFactoryServiceCollectionExtensions {
public static IServiceCollection AddDeviceEndPointFactory<TAddress>(this IServiceCollection services, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
}
public class DeviceEndPointResolutionException : Exception {
public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint) {}
public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint, string message, Exception? innerException) {}
public IDeviceEndPoint DeviceEndPoint { get; }
}
public static class IDeviceEndPointExtensions {
public static ValueTask<EndPoint> ResolveOrThrowAsync(this IDeviceEndPoint deviceEndPoint, int defaultPort, CancellationToken cancellationToken = default) {}
}
public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
public StaticDeviceEndPoint(EndPoint endPoint) {}
public ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = def...
Smdn.TPSmartHomeDevices.MacAddressEndPoint version 1.0.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2023-05-03 update package version
- 2023-05-03 exclude prerelease versions
- 2023-05-02 make sure that URL paths are delimited by '/'
- 2023-05-02 add README.md for NuGet packages
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net6.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net6.0.apilist.cs
index 43308c5..7e5e391 100644
--- a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net6.0.apilist.cs
@@ -1,49 +1,49 @@
-// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0-rc1)
+// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0)
// Name: Smdn.TPSmartHomeDevices.MacAddressEndPoint
// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// InformationalVersion: 1.0.0+4dd7eda1e01a411bacbd6593ca050a45b3c57c37
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Smdn.Net.AddressResolution, Version=1.0.0.0, Culture=neutral
// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
// System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Smdn.Net;
using Smdn.Net.AddressResolution;
using Smdn.TPSmartHomeDevices;
namespace Smdn.TPSmartHomeDevices {
public class MacAddressDeviceEndPointFactory :
IDeviceEndPointFactory<PhysicalAddress>,
IDisposable
{
protected class MacAddressDeviceEndPoint : IDynamicDeviceEndPoint {
public MacAddressDeviceEndPoint(IAddressResolver<PhysicalAddress, IPAddress> resolver, PhysicalAddress address) {}
public void Invalidate() {}
public async ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken) {}
public override string ToString() {}
}
protected MacAddressDeviceEndPointFactory(IAddressResolver<PhysicalAddress, IPAddress> resolver, IServiceProvider? serviceProvider = null) {}
public MacAddressDeviceEndPointFactory(IPNetworkProfile networkProfile, IServiceProvider? serviceProvider = null) {}
public MacAddressDeviceEndPointFactory(MacAddressResolverBase resolver, IServiceProvider? serviceProvider = null) {}
public virtual IDeviceEndPoint Create(PhysicalAddress address) {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
protected void ThrowIfDisposed() {}
}
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.2.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net7.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net7.0.apilist.cs
index 6ec0906..5cc5d49 100644
--- a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net7.0.apilist.cs
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net7.0.apilist.cs
@@ -1,49 +1,49 @@
-// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0-rc1)
+// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0)
// Name: Smdn.TPSmartHomeDevices.MacAddressEndPoint
// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// InformationalVersion: 1.0.0+4dd7eda1e01a411bacbd6593ca050a45b3c57c37
// TargetFramework: .NETCoreApp,Version=v7.0
// Configuration: Release
// Referenced assemblies:
// Smdn.Net.AddressResolution, Version=1.0.0.0, Culture=neutral
// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
// System.ComponentModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.NetworkInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Smdn.Net;
using Smdn.Net.AddressResolution;
using Smdn.TPSmartHomeDevices;
namespace Smdn.TPSmartHomeDevices {
public class MacAddressDeviceEndPointFactory :
IDeviceEndPointFactory<PhysicalAddress>,
IDisposable
{
protected class MacAddressDeviceEndPoint : IDynamicDeviceEndPoint {
public MacAddressDeviceEndPoint(IAddressResolver<PhysicalAddress, IPAddress> resolver, PhysicalAddress address) {}
public void Invalidate() {}
public async ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken) {}
public override string ToString() {}
}
protected MacAddressDeviceEndPointFactory(IAddressResolver<PhysicalAddress, IPAddress> resolver, IServiceProvider? serviceProvider = null) {}
public MacAddressDeviceEndPointFactory(IPNetworkProfile networkProfile, IServiceProvider? serviceProvider = null) {}
public MacAddressDeviceEndPointFactory(MacAddressResolverBase resolver, IServiceProvider? serviceProvider = null) {}
public virtual IDeviceEndPoint Create(PhysicalAddress address) {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
protected void ThrowIfDisposed() {}
}
}
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.2.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.0.apilist.cs
index da09db3..1a0938f 100644
--- a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.0.apilist.cs
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.0.apilist.cs
@@ -1,47 +1,47 @@
-// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0-rc1)
+// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0)
// Name: Smdn.TPSmartHomeDevices.MacAddressEndPoint
// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// InformationalVersion: 1.0.0+4dd7eda1e01a411bacbd6593ca050a45b3c57c37
// TargetFramework: .NETStandard,Version=v2.0
// Configuration: Release
// Referenced assemblies:
// Smdn.Net.AddressResolution, Version=1.0.0.0, Culture=neutral
// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
// System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
using Smdn.Net;
using Smdn.Net.AddressResolution;
using Smdn.TPSmartHomeDevices;
namespace Smdn.TPSmartHomeDevices {
public class MacAddressDeviceEndPointFactory :
IDeviceEndPointFactory<PhysicalAddress>,
IDisposable
{
protected class MacAddressDeviceEndPoint : IDynamicDeviceEndPoint {
public MacAddressDeviceEndPoint(IAddressResolver<PhysicalAddress, IPAddress> resolver, PhysicalAddress address) {}
public void Invalidate() {}
public async ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken) {}
public override string ToString() {}
}
protected MacAddressDeviceEndPointFactory(IAddressResolver<PhysicalAddress, IPAddress> resolver, IServiceProvider? serviceProvider = null) {}
public MacAddressDeviceEndPointFactory(IPNetworkProfile networkProfile, IServic...
Smdn.TPSmartHomeDevices.Kasa version 1.0.0
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2023-05-03 update package version
- 2023-05-03 exclude prerelease versions
- 2023-05-02 make sure that URL paths are delimited by '/'
- 2023-05-02 add cancellation point
- 2023-05-02 add README.md for NuGet packages
- 2023-05-01 add Add(Kasa|Tapo)DeviceExceptionHandler() extension methods
- 2023-05-01 override ToString()
- 2023-05-01 make all parameters of the protected constructor non-optional
- 2023-05-01 use AddressFamily.InterNetwork or InterNetworkV6 instead when connecting socket, if EndPoint.AddressType is unspecified
- 2023-04-30 fix XML comment docs
- 2023-04-28 add XML comment docs
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Kasa/Smdn.TPSmartHomeDevices.Kasa-net6.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Kasa/Smdn.TPSmartHomeDevices.Kasa-net6.0.apilist.cs
index 3ae57ff..f6d9649 100644
--- a/doc/api-list/Smdn.TPSmartHomeDevices.Kasa/Smdn.TPSmartHomeDevices.Kasa-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Kasa/Smdn.TPSmartHomeDevices.Kasa-net6.0.apilist.cs
@@ -1,220 +1,226 @@
-// Smdn.TPSmartHomeDevices.Kasa.dll (Smdn.TPSmartHomeDevices.Kasa-1.0.0-rc1)
+// Smdn.TPSmartHomeDevices.Kasa.dll (Smdn.TPSmartHomeDevices.Kasa-1.0.0)
// Name: Smdn.TPSmartHomeDevices.Kasa
// AssemblyVersion: 1.0.0.0
-// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// InformationalVersion: 1.0.0+4dd7eda1e01a411bacbd6593ca050a45b3c57c37
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Microsoft.Win32.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
using System;
using System.Buffers;
using System.Diagnostics.CodeAnalysis;
using System.Net;
using System.Net.NetworkInformation;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading;
using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Smdn.TPSmartHomeDevices;
using Smdn.TPSmartHomeDevices.Kasa;
using Smdn.TPSmartHomeDevices.Kasa.Protocol;
namespace Smdn.TPSmartHomeDevices.Kasa {
public class HS105 : KasaDevice {
public static HS105 Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider) where TAddress : notnull {}
public HS105(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider = null) {}
public HS105(IPAddress ipAddress, IServiceProvider? serviceProvider = null) {}
public HS105(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
public HS105(string host, IServiceProvider? serviceProvider = null) {}
public ValueTask<bool> GetOnOffStateAsync(CancellationToken cancellationToken = default) {}
public ValueTask SetOnOffStateAsync(bool newOnOffState, CancellationToken cancellationToken = default) {}
public ValueTask TurnOffAsync(CancellationToken cancellationToken = default) {}
public ValueTask TurnOnAsync(CancellationToken cancellationToken = default) {}
}
public class KL130 : KasaDevice {
public static KL130 Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider) where TAddress : notnull {}
public KL130(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider = null) {}
public KL130(IPAddress ipAddress, IServiceProvider? serviceProvider = null) {}
public KL130(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
public KL130(string host, IServiceProvider? serviceProvider = null) {}
public ValueTask<KL130LightState> GetLightStateAsync(CancellationToken cancellationToken = default) {}
public ValueTask<bool> GetOnOffStateAsync(CancellationToken cancellationToken = default) {}
public ValueTask SetColorAsync(int hue, int saturation, int? brightness = null, TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
public ValueTask SetColorTemperatureAsync(int colorTemperature, int? brightness = null, TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
public ValueTask SetOnOffStateAsync(bool newOnOffState, TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
public ValueTask TurnOffAsync(TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
public ValueTask TurnOnAsync(TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
}
public class KasaDevice : IDisposable {
protected readonly struct NullParameter {
}
protected static readonly JsonEncodedText MethodTextGetSysInfo; // = "get_sysinfo"
protected static readonly JsonEncodedText ModuleTextSystem; // = "system"
public static KasaDevice Create(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider = null) {}
public static KasaDevice Create(IPAddress ipAddress, IServiceProvider? serviceProvider = null) {}
public static KasaDevice Create(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
public static KasaDevice Create(string host, IServiceProvider? serviceProvider = null) {}
public static KasaDevice Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider) where TAddress : notnull {}
- protected KasaDevice(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider = null) {}
- protected KasaDevice(IPAddress ipAddress, IServiceProvider? serviceProvider = null) {}
+ protected KasaDevice(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider) {}
+ protected KasaDevice(IPAddress ipAddress, IServiceProvider? serviceProvider) {}
protected KasaDevice(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
- protected KasaDevice(string host, IServiceProvider? serviceProvider = null) {}
+ protected KasaDevice(string host, IServiceProvider? serviceProvider) {}
public bool IsConnected { get; }
[MemberNotNullWhen(false, "deviceEndPoint")]
protected bool IsDisposed { [MemberNotNullWhen(false, "deviceEndPoint")] get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
public ValueTask<EndPoint> ResolveEndPointAsync(CancellationToken cancellationToken = default) {}
protected ValueTask SendRequestAsync<TMethodParameter>(JsonEncodedText module, JsonEncodedText method, TMethodParameter parameters, CancellationToken cancellationToken) {}
protected ValueTask<TMethodResult> SendRequestAsync<TMethodParameter, TMethodResult>(JsonEncodedText module, JsonEncodedText method, TMethodParameter parameters, Func<JsonElement, TMethodResult> composeResult, CancellationToken cancellationToken) {}
protected ValueTask<TMethodResult> SendRequestAsync<TMethodResult>(JsonEncodedText module, JsonEncodedText method, Func<JsonElement, TMethodResult> composeResult, CancellationToken cancellationToken) {}
+ public override string? ToString() {}
}
public abstract class KasaDeviceExceptionHandler {
internal protected static readonly KasaDeviceExceptionHandler Default; // = "Smdn.TPSmartHomeDevices.Kasa.KasaDeviceDefaultExceptionHandler"
protected KasaDeviceExceptionHandler() {}
public abst...
Smdn.TPSmartHomeDevices version 1.0.0-rc1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2023-04-29 update package version
- 2023-04-29 improve metapackage configurations
- 2023-04-28 split assembly Smdn.TPSmartHomeDevices into the assemblies -.Primitives, -.Tapo, -.Kasa, -.MacAddressEndPoint
- 2023-04-27 rename to (Tapo|Kasa)DeviceExceptionHandler and move them to their root namespace
- 2023-04-27 add TimeSpanJsonConverter abstract base class
- 2023-04-27 add 'notnull' constraints to the type parameter that defines type of pass through request
- 2023-04-27 fix link in credit
- 2023-04-27 add SPDX license headers
- 2023-04-27 add XML comment docs
- 2023-04-26 move declaration to appropriate position
- 2023-04-26 parse ID-like properties as byte[] instead of string
- 2023-04-26 fix type parameter name
- 2023-04-25 merge TapoCredentialUtils and TapoCredentialProviderFactory into TapoCredentials
- 2023-04-25 add credit and third party notices
- 2023-04-25 add TapoDevice.Create<TAddress>()
- 2023-04-25 add KasaDevice.Create<TAddress>()
- 2023-04-24 throw ArgumentNullException to keep parameter name
- 2023-04-24 expose DeviceEndPoint and merge the implementation of KasaDeviceEndPoint and TapoDeviceEndPoint
- 2023-04-24 lose the semantics of port numbers from IDeviceEndPoint
- 2023-04-24 expose IDeviceEndPointExtensions.ResolveOrThrowAsync
- 2023-04-24 expose StaticDeviceEndPoint
- 2023-04-24 change endpoint info to output as logger scope instead of category name
- 2023-04-24 reduce overloads of DeviceEndPoint.Create
- 2023-04-24 add Create<TAddress> to support creating devices from any address type
- 2023-04-24 add notnull constraints
- 2023-04-22 enable and fix CA2007
- 2023-04-22 clean up NoWarn values
- 2023-04-22 fix warning CS1573
- 2023-04-22 disable warning CA1848
- 2023-04-22 improve comment
- 2023-04-22 fix warning CA2254
- 2023-04-22 seal the externally invisible types
- 2023-04-22 disable unnecessary using directives
- 2023-04-22 fix nullability warnings
- 2023-04-22 throw InvalidOperationException if the pass through response was decrypted as 'null' JSON object
- 2023-04-22 throw TapoProtocolException if the HTTP response was parsed as 'null' JSON object
- 2023-04-22 expose TapoClient.DefaultHttpClientFactory
- 2023-04-22 propagate CancellationToken
- 2023-04-22 bump Smdn.MSBuild.DefineConstants.NETSdkApi up to 1.3.12
- 2023-04-22 suppress warning SA1114 for switching use of utf-8 string literals
- 2023-04-22 delete unnecessary codes
- 2023-04-22 propagate CancellationToken
- 2023-04-22 improved annotations of fields that may represent disposed states
- 2023-04-22 suppress warning SA1313 and CA1822 for private type
- 2023-04-22 suppress warning CA5350
- 2023-04-22 suppress warning SA1305
- 2023-04-22 bump Smdn.MSBuild.ProjectAssets.Library up to 1.5.0
- 2023-04-22 improve handling of error code -1501
- 2023-04-22 add overload of TapoDevice.GetDeviceInfoAsync() which returns TapoDeviceInfo
- 2023-04-22 expose JsonConverter types
- 2023-04-22 validate token type before getting value
- 2023-04-21 bump Smdn.Net.AddressResolution up to 1.0.0
- 2023-04-21 add TapoDevice.GetOnOffStateAsync
- 2023-04-21 make GetDeviceInfoResponse.Result generic type to make it extensible and reduce dependency to TapoDeviceInfo
- 2023-04-21 rename IDynamicDeviceEndPoint.Invalidate() from InvalidateEndPoint()
- 2023-04-21 rename IDeviceEndPoint.ResolveAsync() from GetEndPointAsync()
- 2023-04-21 rename files
- 2023-04-21 rename IDeviceEndPoint from IDeviceEndPointProvider
- 2023-04-21 reduce usage of record struct
- 2023-04-21 clarify interface method specifications
- 2023-04-21 [improve message of TapoErrorResponseException](0b740ea19cb9a584692f07a...
Smdn.TPSmartHomeDevices.Tapo version 1.0.0-rc1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Tapo/Smdn.TPSmartHomeDevices.Tapo-net6.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Tapo/Smdn.TPSmartHomeDevices.Tapo-net6.0.apilist.cs
new file mode 100644
index 0000000..ad73ea9
--- /dev/null
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Tapo/Smdn.TPSmartHomeDevices.Tapo-net6.0.apilist.cs
@@ -0,0 +1,496 @@
+// Smdn.TPSmartHomeDevices.Tapo.dll (Smdn.TPSmartHomeDevices.Tapo-1.0.0-rc1)
+// Name: Smdn.TPSmartHomeDevices.Tapo
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// TargetFramework: .NETCoreApp,Version=v6.0
+// Configuration: Release
+// Referenced assemblies:
+// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// Microsoft.Extensions.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
+// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
+// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Net.Http, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Http.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Security.Cryptography.Algorithms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Security.Cryptography.Encoding, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Security.Cryptography.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+#nullable enable annotations
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Net;
+using System.Net.Http;
+using System.Net.NetworkInformation;
+using System.Security.Cryptography;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using Smdn.TPSmartHomeDevices;
+using Smdn.TPSmartHomeDevices.Tapo;
+using Smdn.TPSmartHomeDevices.Tapo.Credentials;
+using Smdn.TPSmartHomeDevices.Tapo.Protocol;
+
+namespace Smdn.TPSmartHomeDevices.Tapo {
+ public class L530 : TapoDevice {
+ public static L530 Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider, ITapoCredentialProvider? credential = null) where TAddress : notnull {}
+
+ public L530(IDeviceEndPoint deviceEndPoint, ITapoCredentialProvider? credential = null, IServiceProvider? serviceProvider = null) {}
+ public L530(IPAddress ipAddress, IServiceProvider serviceProvider) {}
+ public L530(IPAddress ipAddress, string email, string password, IServiceProvider? serviceProvider = null) {}
+ public L530(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
+ public L530(PhysicalAddress macAddress, string email, string password, IServiceProvider serviceProvider) {}
+ public L530(string host, IServiceProvider serviceProvider) {}
+ public L530(string host, string email, string password, IServiceProvider? serviceProvider = null) {}
+
+ public ValueTask SetBrightnessAsync(int brightness, CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorAsync(int hue, int saturation, int? brightness = null, CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorHueAsync(int hue, int? brightness = null, CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorSaturationAsync(int saturation, int? brightness = null, CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorTemperatureAsync(int colorTemperature, int? brightness = null, CancellationToken cancellationToken = default) {}
+ }
+
+ public class L900 : TapoDevice {
+ public static L900 Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider, ITapoCredentialProvider? credential = null) where TAddress : notnull {}
+
+ public L900(IDeviceEndPoint deviceEndPoint, ITapoCredentialProvider? credential = null, IServiceProvider? serviceProvider = null) {}
+ public L900(IPAddress ipAddress, IServiceProvider serviceProvider) {}
+ public L900(IPAddress ipAddress, string email, string password, IServiceProvider? serviceProvider = null) {}
+ public L900(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
+ public L900(PhysicalAddress macAddress, string email, string password, IServiceProvider serviceProvider) {}
+ public L900(string host, IServiceProvider serviceProvider) {}
+ public L900(string host, string email, string password, IServiceProvider? serviceProvider = null) {}
+
+ public ValueTask SetBrightnessAsync(int brightness, CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorAsync(int hue, int saturation, int? brightness = null, CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorHueAsync(int hue, int? brightness, CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorSaturationAsync(int saturation, int? brightness = null, CancellationToken cancellationToken = default) {}
+ }
+
+ public class P105 : TapoDevice {
+ public static P105 Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider, ITapoCredentialProvider? credential = null) where TAddress : notnull {}
+
+ public P105(IDeviceEndPoint deviceEndPoint, ITapoCredentialProvider? credential = null, IServiceProvider? serviceProvider = null) {}
+ public P105(IPAddress ipAddress, IServiceProvider serviceProvider) {}
+ public P105(IPAddress ipAddress, string email, string password, IServiceProvider? serviceProvider = null) {}
+ public P105(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
+ public P105(PhysicalAddress macAddress, string email, string password, IServiceProvider serviceProvider) {}
+ public P105(string host, IServiceProvider serviceProvider) {}
+ public P105(string host, string email, string password, IServiceProvider? serviceProvider = null) {}
+ }
+
+ public class TapoAuthenticationException : TapoProtocolException {
+ public TapoAuthenticationException(string message, Uri endPoint, Exception? innerException = null) {}
+ }
+
+ public static class TapoCredentailProviderServiceCollectionExtensions {
+ public static IServiceCollection AddTapoBase64EncodedCredential(this IServiceCollection services, string base64UserNameSHA1Digest, string base64Password) {}
+ public static IServiceCollection AddTapoCredential(this IServiceCollection services, string email, string password) {}
+ public static IServiceCollection AddTapoCredentialProvider(this IServiceCollection services, ITapoCredentialProvider credentialProvider) {}
+ }
+
+ public class TapoDevice :
+ IDisposable,
+ ITapoCredentialIdentity
+ {
+ public static TapoDevice Create(IDeviceEndPoint deviceEndPoint, ITapoCredentialProvider? credential = null, IServiceProvider? serviceProvider = null) {}
+ public static TapoDevice Create(IPAddress ipAddress, IServiceProvider serviceProvider) {}
+ public static TapoDevice Create(IPAddress ipAddress, string email, string password, IServiceProvider? serviceProvider = null) {}
+ public static TapoDevice Create(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
+ public static TapoDevice Create(PhysicalAddress macAddress, string email, string password, IServiceProvider serviceProvider) {}
+ public static TapoDevice Create(string host, IServiceProvider serviceProvider) {}
+ public static TapoDevice Create(string host, string email, string password, IServiceProvider? serviceProvider = null) {}
+ public static TapoDevice Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider, ITapoCredentialProvider? credential = null) where TAddress : notnull {}
+
+ protected TapoDevice(IDeviceEndPoint deviceEndPoint, ITapoCredentialProvider? credential = null, TapoDeviceExceptionHandler? exceptionHandler = null, IServiceProvider? serviceProvider = null) {}
+ protected ...
Smdn.TPSmartHomeDevices.Primitives version 1.0.0-rc1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs
new file mode 100644
index 0000000..d39c2be
--- /dev/null
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-net6.0.apilist.cs
@@ -0,0 +1,105 @@
+// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.0-rc1)
+// Name: Smdn.TPSmartHomeDevices.Primitives
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0-rc1+7ce7d5ecfff9471ef9ebdce241166784cce4cbbd
+// TargetFramework: .NETCoreApp,Version=v6.0
+// Configuration: Release
+// Referenced assemblies:
+// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+#nullable enable annotations
+
+using System;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Smdn.TPSmartHomeDevices;
+using Smdn.TPSmartHomeDevices.Json;
+
+namespace Smdn.TPSmartHomeDevices {
+ public interface IDeviceEndPoint {
+ ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default);
+ }
+
+ public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
+ IDeviceEndPoint Create(TAddress address);
+ }
+
+ public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
+ void Invalidate();
+ }
+
+ public static class DeviceEndPoint {
+ public static IDeviceEndPoint Create(EndPoint endPoint) {}
+ public static IDeviceEndPoint Create(IPAddress ipAddress) {}
+ public static IDeviceEndPoint Create(string host) {}
+ public static IDeviceEndPoint Create<TAddress>(TAddress address, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
+ }
+
+ public static class DeviceEndPointFactoryServiceCollectionExtensions {
+ public static IServiceCollection AddDeviceEndPointFactory<TAddress>(this IServiceCollection services, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
+ }
+
+ public class DeviceEndPointResolutionException : Exception {
+ public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint) {}
+ public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint, string message, Exception? innerException) {}
+
+ public IDeviceEndPoint DeviceEndPoint { get; }
+ }
+
+ public static class IDeviceEndPointExtensions {
+ public static ValueTask<EndPoint> ResolveOrThrowAsync(this IDeviceEndPoint deviceEndPoint, int defaultPort, CancellationToken cancellationToken = default) {}
+ }
+
+ public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
+ public StaticDeviceEndPoint(EndPoint endPoint) {}
+
+ public ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default) {}
+ public override string? ToString() {}
+ }
+}
+
+namespace Smdn.TPSmartHomeDevices.Json {
+ public sealed class GeolocationInDecimalDegreesJsonConverter : JsonConverter<decimal?> {
+ public GeolocationInDecimalDegreesJsonConverter() {}
+
+ public override decimal? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
+ public override void Write(Utf8JsonWriter writer, decimal? @value, JsonSerializerOptions options) {}
+ }
+
+ public sealed class MacAddressJsonConverter : JsonConverter<PhysicalAddress> {
+ public MacAddressJsonConverter() {}
+
+ public override PhysicalAddress? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
+ public override void Write(Utf8JsonWriter writer, PhysicalAddress @value, JsonSerializerOptions options) {}
+ }
+
+ public sealed class TimeSpanInMinutesJsonConverter : TimeSpanJsonConverter {
+ public TimeSpanInMinutesJsonConverter() {}
+
+ protected override TimeSpan ToTimeSpan(int @value) {}
+ }
+
+ public sealed class TimeSpanInSecondsJsonConverter : TimeSpanJsonConverter {
+ public TimeSpanInSecondsJsonConverter() {}
+
+ protected override TimeSpan ToTimeSpan(int @value) {}
+ }
+
+ public abstract class TimeSpanJsonConverter : JsonConverter<TimeSpan?> {
+ protected TimeSpanJsonConverter() {}
+
+ public override TimeSpan? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
+ protected abstract TimeSpan ToTimeSpan(int @value);
+ public override void Write(Utf8JsonWriter writer, TimeSpan? @value, JsonSerializerOptions options) {}
+ }
+}
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.2.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs
new file mode 100644
index 0000000..2086cd7
--- /dev/null
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Primitives/Smdn.TPSmartHomeDevices.Primitives-netstandard2.0.apilist.cs
@@ -0,0 +1,104 @@
+// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.0.0-rc1)
+// Name: Smdn.TPSmartHomeDevices.Primitives
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0-rc1+7ce7d5ecfff9471ef9ebdce241166784cce4cbbd
+// TargetFramework: .NETStandard,Version=v2.0
+// Configuration: Release
+// Referenced assemblies:
+// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+#nullable enable annotations
+
+using System;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Smdn.TPSmartHomeDevices;
+using Smdn.TPSmartHomeDevices.Json;
+
+namespace Smdn.TPSmartHomeDevices {
+ public interface IDeviceEndPoint {
+ ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default);
+ }
+
+ public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
+ IDeviceEndPoint Create(TAddress address);
+ }
+
+ public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
+ void Invalidate();
+ }
+
+ public static class DeviceEndPoint {
+ public static IDeviceEndPoint Create(EndPoint endPoint) {}
+ public static IDeviceEndPoint Create(IPAddress ipAddress) {}
+ public static IDeviceEndPoint Create(string host) {}
+ public static IDeviceEndPoint Create<TAddress>(TAddress address, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
+ }
+
+ public static class DeviceEndPointFactoryServiceCollectionExtensions {
+ public static IServiceCollection AddDeviceEndPointFactory<TAddress>(this IServiceCollection services, IDeviceEndPointFactory<TAddress> endPointFactory) where TAddress : notnull {}
+ }
+
+ public class DeviceEndPointResolutionException : Exception {
+ public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint) {}
+ public DeviceEndPointResolutionException(IDeviceEndPoint deviceEndPoint, string message, Exception? innerException) {}
+
+ public IDeviceEndPoint DeviceEndPoint { get; }
+ }
+
+ public static class IDeviceEndPointExtensions {
+ public static ValueTask<EndPoint> ResolveOrThrowAsync(this IDeviceEndPoint deviceEndPoint, int defaultPort, CancellationToken cancellationToken = default) {}
+ }
+
+ public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
+ public StaticDeviceEndPoint(EndPoint endPoint) {}
+
+ public ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken = default) {}
+ public override string? ToString() {}
+ }
+}
+
+namespace Smdn.TPSmartHomeDevices.Json {
+ public sealed class GeolocationInDecimalDegreesJsonConverter : JsonConverter<decimal?> {
+ public GeolocationInDecimalDegreesJsonConverter() {}
+
+ public override decimal? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
+ public override void Write(Utf8JsonWriter writer, decimal? @value, JsonSerializerOptions options) {}
+ }
+
...
Smdn.TPSmartHomeDevices.MacAddressEndPoint version 1.0.0-rc1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net6.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net6.0.apilist.cs
new file mode 100644
index 0000000..43308c5
--- /dev/null
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net6.0.apilist.cs
@@ -0,0 +1,49 @@
+// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0-rc1)
+// Name: Smdn.TPSmartHomeDevices.MacAddressEndPoint
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// TargetFramework: .NETCoreApp,Version=v6.0
+// Configuration: Release
+// Referenced assemblies:
+// Smdn.Net.AddressResolution, Version=1.0.0.0, Culture=neutral
+// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
+// System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+#nullable enable annotations
+
+using System;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Threading;
+using System.Threading.Tasks;
+using Smdn.Net;
+using Smdn.Net.AddressResolution;
+using Smdn.TPSmartHomeDevices;
+
+namespace Smdn.TPSmartHomeDevices {
+ public class MacAddressDeviceEndPointFactory :
+ IDeviceEndPointFactory<PhysicalAddress>,
+ IDisposable
+ {
+ protected class MacAddressDeviceEndPoint : IDynamicDeviceEndPoint {
+ public MacAddressDeviceEndPoint(IAddressResolver<PhysicalAddress, IPAddress> resolver, PhysicalAddress address) {}
+
+ public void Invalidate() {}
+ public async ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken) {}
+ public override string ToString() {}
+ }
+
+ protected MacAddressDeviceEndPointFactory(IAddressResolver<PhysicalAddress, IPAddress> resolver, IServiceProvider? serviceProvider = null) {}
+ public MacAddressDeviceEndPointFactory(IPNetworkProfile networkProfile, IServiceProvider? serviceProvider = null) {}
+ public MacAddressDeviceEndPointFactory(MacAddressResolverBase resolver, IServiceProvider? serviceProvider = null) {}
+
+ public virtual IDeviceEndPoint Create(PhysicalAddress address) {}
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ protected void ThrowIfDisposed() {}
+ }
+}
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.2.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net7.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net7.0.apilist.cs
new file mode 100644
index 0000000..6ec0906
--- /dev/null
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-net7.0.apilist.cs
@@ -0,0 +1,49 @@
+// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0-rc1)
+// Name: Smdn.TPSmartHomeDevices.MacAddressEndPoint
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// TargetFramework: .NETCoreApp,Version=v7.0
+// Configuration: Release
+// Referenced assemblies:
+// Smdn.Net.AddressResolution, Version=1.0.0.0, Culture=neutral
+// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
+// System.ComponentModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.NetworkInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+#nullable enable annotations
+
+using System;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Threading;
+using System.Threading.Tasks;
+using Smdn.Net;
+using Smdn.Net.AddressResolution;
+using Smdn.TPSmartHomeDevices;
+
+namespace Smdn.TPSmartHomeDevices {
+ public class MacAddressDeviceEndPointFactory :
+ IDeviceEndPointFactory<PhysicalAddress>,
+ IDisposable
+ {
+ protected class MacAddressDeviceEndPoint : IDynamicDeviceEndPoint {
+ public MacAddressDeviceEndPoint(IAddressResolver<PhysicalAddress, IPAddress> resolver, PhysicalAddress address) {}
+
+ public void Invalidate() {}
+ public async ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken) {}
+ public override string ToString() {}
+ }
+
+ protected MacAddressDeviceEndPointFactory(IAddressResolver<PhysicalAddress, IPAddress> resolver, IServiceProvider? serviceProvider = null) {}
+ public MacAddressDeviceEndPointFactory(IPNetworkProfile networkProfile, IServiceProvider? serviceProvider = null) {}
+ public MacAddressDeviceEndPointFactory(MacAddressResolverBase resolver, IServiceProvider? serviceProvider = null) {}
+
+ public virtual IDeviceEndPoint Create(PhysicalAddress address) {}
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ protected void ThrowIfDisposed() {}
+ }
+}
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.2.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.0.apilist.cs
new file mode 100644
index 0000000..da09db3
--- /dev/null
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.0.apilist.cs
@@ -0,0 +1,47 @@
+// Smdn.TPSmartHomeDevices.MacAddressEndPoint.dll (Smdn.TPSmartHomeDevices.MacAddressEndPoint-1.0.0-rc1)
+// Name: Smdn.TPSmartHomeDevices.MacAddressEndPoint
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// TargetFramework: .NETStandard,Version=v2.0
+// Configuration: Release
+// Referenced assemblies:
+// Smdn.Net.AddressResolution, Version=1.0.0.0, Culture=neutral
+// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
+// System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+#nullable enable annotations
+
+using System;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Threading;
+using System.Threading.Tasks;
+using Smdn.Net;
+using Smdn.Net.AddressResolution;
+using Smdn.TPSmartHomeDevices;
+
+namespace Smdn.TPSmartHomeDevices {
+ public class MacAddressDeviceEndPointFactory :
+ IDeviceEndPointFactory<PhysicalAddress>,
+ IDisposable
+ {
+ protected class MacAddressDeviceEndPoint : IDynamicDeviceEndPoint {
+ public MacAddressDeviceEndPoint(IAddressResolver<PhysicalAddress, IPAddress> resolver, PhysicalAddress address) {}
+
+ public void Invalidate() {}
+ public async ValueTask<EndPoint?> ResolveAsync(CancellationToken cancellationToken) {}
+ public override string ToString() {}
+ }
+
+ protected MacAddressDeviceEndPointFactory(IAddressResolver<PhysicalAddress, IPAddress> resolver, IServiceProvider? serviceProvider = null) {}
+ public MacAddressDeviceEndPointFactory(IPNetworkProfile networkProfile, IServiceProvider? serviceProvider = null) {}
+ public MacAddressDeviceEndPointFactory(MacAddressResolverBase resolver, IServiceProvider? serviceProvider = null) {}
+
+ public virtual IDeviceEndPoint Create(PhysicalAddress address) {}
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ protected void ThrowIfDisposed() {}
+ }
+}
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.2.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.1.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEndPoint-netstandard2.1.apilist.cs
new file mode 100644
index 0000000..a406cb4
--- /dev/null
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.MacAddressEndPoint/Smdn.TPSmartHomeDevices.MacAddressEn...
Smdn.TPSmartHomeDevices.Kasa version 1.0.0-rc1
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
API changes
API changes in this release:
diff --git a/doc/api-list/Smdn.TPSmartHomeDevices.Kasa/Smdn.TPSmartHomeDevices.Kasa-net6.0.apilist.cs b/doc/api-list/Smdn.TPSmartHomeDevices.Kasa/Smdn.TPSmartHomeDevices.Kasa-net6.0.apilist.cs
new file mode 100644
index 0000000..3ae57ff
--- /dev/null
+++ b/doc/api-list/Smdn.TPSmartHomeDevices.Kasa/Smdn.TPSmartHomeDevices.Kasa-net6.0.apilist.cs
@@ -0,0 +1,220 @@
+// Smdn.TPSmartHomeDevices.Kasa.dll (Smdn.TPSmartHomeDevices.Kasa-1.0.0-rc1)
+// Name: Smdn.TPSmartHomeDevices.Kasa
+// AssemblyVersion: 1.0.0.0
+// InformationalVersion: 1.0.0-rc1+00727d1f82dcb2b9dd9c6e586f6c54110349bf48
+// TargetFramework: .NETCoreApp,Version=v6.0
+// Configuration: Release
+// Referenced assemblies:
+// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
+// Microsoft.Win32.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// Smdn.TPSmartHomeDevices.Primitives, Version=1.0.0.0, Culture=neutral
+// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.ComponentModel, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Net.NetworkInformation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Primitives, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Net.Sockets, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Text.Encodings.Web, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+#nullable enable annotations
+
+using System;
+using System.Buffers;
+using System.Diagnostics.CodeAnalysis;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.Logging;
+using Smdn.TPSmartHomeDevices;
+using Smdn.TPSmartHomeDevices.Kasa;
+using Smdn.TPSmartHomeDevices.Kasa.Protocol;
+
+namespace Smdn.TPSmartHomeDevices.Kasa {
+ public class HS105 : KasaDevice {
+ public static HS105 Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider) where TAddress : notnull {}
+
+ public HS105(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider = null) {}
+ public HS105(IPAddress ipAddress, IServiceProvider? serviceProvider = null) {}
+ public HS105(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
+ public HS105(string host, IServiceProvider? serviceProvider = null) {}
+
+ public ValueTask<bool> GetOnOffStateAsync(CancellationToken cancellationToken = default) {}
+ public ValueTask SetOnOffStateAsync(bool newOnOffState, CancellationToken cancellationToken = default) {}
+ public ValueTask TurnOffAsync(CancellationToken cancellationToken = default) {}
+ public ValueTask TurnOnAsync(CancellationToken cancellationToken = default) {}
+ }
+
+ public class KL130 : KasaDevice {
+ public static KL130 Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider) where TAddress : notnull {}
+
+ public KL130(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider = null) {}
+ public KL130(IPAddress ipAddress, IServiceProvider? serviceProvider = null) {}
+ public KL130(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
+ public KL130(string host, IServiceProvider? serviceProvider = null) {}
+
+ public ValueTask<KL130LightState> GetLightStateAsync(CancellationToken cancellationToken = default) {}
+ public ValueTask<bool> GetOnOffStateAsync(CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorAsync(int hue, int saturation, int? brightness = null, TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
+ public ValueTask SetColorTemperatureAsync(int colorTemperature, int? brightness = null, TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
+ public ValueTask SetOnOffStateAsync(bool newOnOffState, TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
+ public ValueTask TurnOffAsync(TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
+ public ValueTask TurnOnAsync(TimeSpan? transitionPeriod = null, CancellationToken cancellationToken = default) {}
+ }
+
+ public class KasaDevice : IDisposable {
+ protected readonly struct NullParameter {
+ }
+
+ protected static readonly JsonEncodedText MethodTextGetSysInfo; // = "get_sysinfo"
+ protected static readonly JsonEncodedText ModuleTextSystem; // = "system"
+
+ public static KasaDevice Create(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider = null) {}
+ public static KasaDevice Create(IPAddress ipAddress, IServiceProvider? serviceProvider = null) {}
+ public static KasaDevice Create(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
+ public static KasaDevice Create(string host, IServiceProvider? serviceProvider = null) {}
+ public static KasaDevice Create<TAddress>(TAddress deviceAddress, IServiceProvider serviceProvider) where TAddress : notnull {}
+
+ protected KasaDevice(IDeviceEndPoint deviceEndPoint, IServiceProvider? serviceProvider = null) {}
+ protected KasaDevice(IPAddress ipAddress, IServiceProvider? serviceProvider = null) {}
+ protected KasaDevice(PhysicalAddress macAddress, IServiceProvider serviceProvider) {}
+ protected KasaDevice(string host, IServiceProvider? serviceProvider = null) {}
+
+ public bool IsConnected { get; }
+ [MemberNotNullWhen(false, "deviceEndPoint")]
+ protected bool IsDisposed { [MemberNotNullWhen(false, "deviceEndPoint")] get; }
+
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ public ValueTask<EndPoint> ResolveEndPointAsync(CancellationToken cancellationToken = default) {}
+ protected ValueTask SendRequestAsync<TMethodParameter>(JsonEncodedText module, JsonEncodedText method, TMethodParameter parameters, CancellationToken cancellationToken) {}
+ protected ValueTask<TMethodResult> SendRequestAsync<TMethodParameter, TMethodResult>(JsonEncodedText module, JsonEncodedText method, TMethodParameter parameters, Func<JsonElement, TMethodResult> composeResult, CancellationToken cancellationToken) {}
+ protected ValueTask<TMethodResult> SendRequestAsync<TMethodResult>(JsonEncodedText module, JsonEncodedText method, Func<JsonElement, TMethodResult> composeResult, CancellationToken cancellationToken) {}
+ }
+
+ public abstract class KasaDeviceExceptionHandler {
+ internal protected static readonly KasaDeviceExceptionHandler Default; // = "Smdn.TPSmartHomeDevices.Kasa.KasaDeviceDefaultExceptionHandler"
+
+ protected KasaDeviceExceptionHandler() {}
+
+ public abstract KasaDeviceExceptionHandling DetermineHandling(KasaDevice device, Exception exception, int attempt, ILogger? logger);
+ }
+
+ public class KasaDisconnectedException : KasaProtocolException {
+ public KasaDisconnectedException(string message, EndPoint deviceEndPoint, Exception? innerException) {}
+ }
+
+ public class KasaErrorResponseException : KasaUnexpectedResponseException {
+ public KasaErrorResponseException(EndPoint deviceEndPoint, string requestModule, string requestMethod, int rawErrorCode) {}
+
+ public int RawErrorCode { get; }
+ }
+
+ public class KasaIncompleteResponseException : KasaUnexpectedResponseException {
+ public KasaIncompleteResponseException(string message, EndPoint deviceEndPoint, string requestModule, string requestMethod, Exception? innerException) {}
+ }
+
+ public abstract class KasaProtocolException : InvalidOperationException {
+ protected KasaProtocolException(string message, EndPoint deviceEndPoint, Exception? innerException) {}
+
+ public EndPoint DeviceEndPoint { get; }
+ }
+
+ public class KasaUnexpectedResponseException : KasaProtocolException {
+ public KasaUnexpectedResponseException(string message, EndPoint deviceEndPoint, string requestModule, string requestMethod, Exception? innerException) {}
+
+ public string RequestMethod { get; }
+ public string RequestModule { get; }
+ }
+
+ public readonly struct KL130LightState {
+ [MemberNotNullWhen(true, "IsOn")]
+ [JsonPropertyName("brightness")]
+ public int? Brightness { [MemberNotNullWhen(true, "IsOn")] get; [MemberNotNullWhen(true, "IsOn")] init; }
+ [MemberNotNullWhen(true, "IsOn")]
+ [JsonPropertyName("color_temp")]
+ public int? ColorTemperature { [MemberNotNullWhen(true, "IsOn")] get; [MemberNotNullWhen(true, "IsOn")] init; }
+ [MemberNotNullWhen(true, "IsOn")]
+ ...
Smdn.TPSmartHomeDevices version 1.0.0-preview3
Released package
Release notes
The full release notes are available at gist.
Change log
Change log in this release:
- 2023-03-26 update package version
- 2023-03-26 improve xml comment
- 2023-03-26 add TapoClient.Timeout and TapoDevice.Timeout to be able to override the timeout configured by IHttpClientFactory
- 2023-03-26 fix handling of OperationCanceledException and TaskCanceledException triggered by a given CancellationToken
- 2023-03-26 exclude OperationCanceledException from target of exception handler to just re-throw always
- 2023-03-26 pass the device class as the parameter of exception handlers to be able to determine handling per instance
- 2023-03-26 remove unnecessary use of JsonConverter
- 2023-03-26 mask credentials in output to logger
- 2023-03-25 create a new namespace Smdn.TPSmartHomeDevices.Tapo.Credentials and move relevant types into it
- 2023-03-25 introduce ITapoCredentialIdentity to identify an appropriate credential from ITapoCredentialProvider, instead of using hostname
- 2023-03-25 add extension method AddTapoCredentialProvider
- 2023-03-25 simplify implementation of StringCredentialProvider
- 2023-03-25 reduce warning message redundancy
- 2023-03-25 introduce ITapoCredential to shorten the lifespan of credential informations
- 2023-03-25 add TapoCredentialUtils.TryConvertToHexSHA1Hash
- 2023-03-25 set the delay until the next retry
- 2023-03-25 structurize KasaClientExceptionHandling/TapoClientExceptionHandling
- 2023-03-25 fix the provisional buffer size
- 2023-03-23 remove TapoClientExceptionHandling.RetryAfterReestablishSession
- 2023-03-23 methodize the process of login_device
- 2023-03-23 improve informational log messages
- 2023-03-23 log the request content before throwing exception
- 2023-03-23 include an original address of the end point to the logger category name
- 2023-03-23 set default value to the HttpClient
- 2023-03-23 bump Smdn.Net.AddressResolution up to 1.0.0-preview5
- 2023-03-23 add response error handling for the error code -1008
- 2023-03-23 add TapoErrorCodes
- 2023-03-23 mark the end point as invalid if address resolution failed
- 2023-03-23 improve log message
- 2023-03-21 mark the dynamic endpoint as invalid also the case when the retry failed
- 2023-03-21 override ToString() of the IDeviceEndPointProvider implementation types
- 2023-03-21 add fix for the case when the address could not be resolved
- 2023-03-21 shorten the lifecycle of HttpClient from the instance level to the per request level
- 2023-03-21 rename 'credential' from 'credentialProvider'
- 2023-03-21 shorten the lifecycle of ITapoCredentialProvider from the instance level to the method invocation level
- 2023-03-20 handle timeout and wrap TimeoutException thrown while request into TapoProtocolException
- 2023-03-20 dispose client when authentication failed
- 2023-03-20 wrap TimeoutException thrown while authentication into TapoAuthenticationException
- 2023-03-20 make TapoHttpClientFactory configurable
- 2023-03-19 use ValueTask instead Task for the async method's return type
- 2023-03-19 wrap also SocketException with WSAECONNABORTED as KasaDisconnectedException
- 2023-03-18 make the naming of 'host name' follow the same style as .NET API
- 2023-03-18 enable generating XML docs
- 2023-03-18 fix xml docs
- 2023-03-18 reorganize constructor overloads and add docs to them
- 2023-03-17 remove the parameter 'terminalUuid' from the public interfaces
- 2023-03-17 refactor and add tests for the implementation of ITapoCredentialProvider
- 2023-03-17 set CipherMode explicitly for clarity
- 2023-03-17 expose constructor overloads which accepts PhysicalAddress and IDeviceEndPointFactory<PhysicalAddress>
- 2023-03-17 introduce IDeviceEndPointFactory<TAddress> to support various type of addresses including PhysicalAddress to be treated as device end points
- 2023-03-17 refactor the passing of constructor arguments
- 2023-03-17 pass service interfaces directly instead of passing IServiceProvider
- 2023-03-16 cleanup using directives
- 2023-03-16 introduce [Tapo|Kasa]ClientExceptionHandler to provide extension points for determining exception handings
- 2023-03-16 dispose HttpResponseMessage
- 2023-03-16 [fix merge error](https://github.com/smdn/Smdn.TPSmartHomeDevices/commi...