Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release main/Smdn.TPSmartHomeDevices.Primitives-1.1.0-preview2 #28

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.1.0-preview1)
// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.1.0-preview2)
// Name: Smdn.TPSmartHomeDevices.Primitives
// AssemblyVersion: 1.1.0.0
// InformationalVersion: 1.1.0-preview1+d9122eb664899e2e3470e87efca152f3456eb904
// InformationalVersion: 1.1.0-preview2+e153b40ab2e10cbae4165a6013f9be14e5465b75
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
// 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.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Expand All @@ -32,12 +34,19 @@ public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
IDeviceEndPoint Create(TAddress address);
}

public interface IDeviceInfo {
string? FirmwareVersion { get; }
string? HardwareVersion { get; }
ReadOnlySpan<byte> Id { get; }
PhysicalAddress? MacAddress { get; }
string? ModelName { get; }
}

public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
void Invalidate();
}

public interface IMulticolorSmartLight : ISmartDevice {
ValueTask SetBrightnessAsync(int brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
public interface IMulticolorSmartLight : ISmartLight {
ValueTask SetColorAsync(int hue, int saturation, int? brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
ValueTask SetColorTemperatureAsync(int colorTemperature, int? brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
virtual ValueTask SetOnOffStateAsync(bool newOnOffState, TimeSpan transitionPeriod, CancellationToken cancellationToken) {}
Expand All @@ -46,13 +55,15 @@ public interface IMulticolorSmartLight : ISmartDevice {
}

public interface ISmartDevice {
ValueTask<IDeviceInfo> GetDeviceInfoAsync(CancellationToken cancellationToken = default);
ValueTask<bool> GetOnOffStateAsync(CancellationToken cancellationToken);
ValueTask SetOnOffStateAsync(bool newOnOffState, CancellationToken cancellationToken);
virtual ValueTask TurnOffAsync(CancellationToken cancellationToken = default) {}
virtual ValueTask TurnOnAsync(CancellationToken cancellationToken = default) {}
}

public interface ISmartPlug : ISmartDevice {
public interface ISmartLight : ISmartDevice {
ValueTask SetBrightnessAsync(int brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
}

public static class DeviceEndPoint {
Expand Down Expand Up @@ -86,6 +97,13 @@ public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
}

namespace Smdn.TPSmartHomeDevices.Json {
public sealed class Base16ByteArrayJsonConverter : JsonConverter<byte[]> {
public Base16ByteArrayJsonConverter() {}

public override byte[]? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
public override void Write(Utf8JsonWriter writer, byte[]? @value, JsonSerializerOptions options) {}
}

public sealed class GeolocationInDecimalDegreesJsonConverter : JsonConverter<decimal?> {
public GeolocationInDecimalDegreesJsonConverter() {}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.1.0-preview2)
// Name: Smdn.TPSmartHomeDevices.Primitives
// AssemblyVersion: 1.1.0.0
// InformationalVersion: 1.1.0-preview2+e153b40ab2e10cbae4165a6013f9be14e5465b75
// TargetFramework: .NETCoreApp,Version=v8.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
// System.Memory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// System.Net.NetworkInformation, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Net.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Text.Json, Version=8.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 IDeviceInfo {
string? FirmwareVersion { get; }
string? HardwareVersion { get; }
ReadOnlySpan<byte> Id { get; }
PhysicalAddress? MacAddress { get; }
string? ModelName { get; }
}

public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
void Invalidate();
}

public interface IMulticolorSmartLight : ISmartLight {
ValueTask SetColorAsync(int hue, int saturation, int? brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
ValueTask SetColorTemperatureAsync(int colorTemperature, int? brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
virtual ValueTask SetOnOffStateAsync(bool newOnOffState, TimeSpan transitionPeriod, CancellationToken cancellationToken) {}
virtual ValueTask TurnOffAsync(TimeSpan transitionPeriod, CancellationToken cancellationToken) {}
virtual ValueTask TurnOnAsync(TimeSpan transitionPeriod, CancellationToken cancellationToken) {}
}

public interface ISmartDevice {
ValueTask<IDeviceInfo> GetDeviceInfoAsync(CancellationToken cancellationToken = default);
ValueTask<bool> GetOnOffStateAsync(CancellationToken cancellationToken);
ValueTask SetOnOffStateAsync(bool newOnOffState, CancellationToken cancellationToken);
virtual ValueTask TurnOffAsync(CancellationToken cancellationToken = default) {}
virtual ValueTask TurnOnAsync(CancellationToken cancellationToken = default) {}
}

public interface ISmartLight : ISmartDevice {
ValueTask SetBrightnessAsync(int brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
}

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 Base16ByteArrayJsonConverter : JsonConverter<byte[]> {
public Base16ByteArrayJsonConverter() {}

public override byte[]? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
public override void Write(Utf8JsonWriter writer, byte[]? @value, JsonSerializerOptions options) {}
}

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.3.2.0.
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.1.0-preview1)
// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.1.0-preview2)
// Name: Smdn.TPSmartHomeDevices.Primitives
// AssemblyVersion: 1.1.0.0
// InformationalVersion: 1.1.0-preview1+d9122eb664899e2e3470e87efca152f3456eb904
// InformationalVersion: 1.1.0-preview2+e153b40ab2e10cbae4165a6013f9be14e5465b75
// TargetFramework: .NETStandard,Version=v2.0
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
// System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// 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
Expand All @@ -31,22 +33,31 @@ public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
IDeviceEndPoint Create(TAddress address);
}

public interface IDeviceInfo {
string? FirmwareVersion { get; }
string? HardwareVersion { get; }
ReadOnlySpan<byte> Id { get; }
PhysicalAddress? MacAddress { get; }
string? ModelName { get; }
}

public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
void Invalidate();
}

public interface IMulticolorSmartLight : ISmartDevice {
ValueTask SetBrightnessAsync(int brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
public interface IMulticolorSmartLight : ISmartLight {
ValueTask SetColorAsync(int hue, int saturation, int? brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
ValueTask SetColorTemperatureAsync(int colorTemperature, int? brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
}

public interface ISmartDevice {
ValueTask<IDeviceInfo> GetDeviceInfoAsync(CancellationToken cancellationToken = default);
ValueTask<bool> GetOnOffStateAsync(CancellationToken cancellationToken);
ValueTask SetOnOffStateAsync(bool newOnOffState, CancellationToken cancellationToken);
}

public interface ISmartPlug : ISmartDevice {
public interface ISmartLight : ISmartDevice {
ValueTask SetBrightnessAsync(int brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
}

public static class DeviceEndPoint {
Expand Down Expand Up @@ -80,6 +91,13 @@ public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
}

namespace Smdn.TPSmartHomeDevices.Json {
public sealed class Base16ByteArrayJsonConverter : JsonConverter<byte[]> {
public Base16ByteArrayJsonConverter() {}

public override byte[]? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
public override void Write(Utf8JsonWriter writer, byte[]? @value, JsonSerializerOptions options) {}
}

public sealed class GeolocationInDecimalDegreesJsonConverter : JsonConverter<decimal?> {
public GeolocationInDecimalDegreesJsonConverter() {}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.1.0-preview1)
// Smdn.TPSmartHomeDevices.Primitives.dll (Smdn.TPSmartHomeDevices.Primitives-1.1.0-preview2)
// Name: Smdn.TPSmartHomeDevices.Primitives
// AssemblyVersion: 1.1.0.0
// InformationalVersion: 1.1.0-preview1+d9122eb664899e2e3470e87efca152f3456eb904
// InformationalVersion: 1.1.0-preview2+e153b40ab2e10cbae4165a6013f9be14e5465b75
// TargetFramework: .NETStandard,Version=v2.1
// Configuration: Release
// Referenced assemblies:
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// Smdn.Fundamental.PrintableEncoding.Hexadecimal, Version=3.0.1.0, Culture=neutral
// System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
Expand All @@ -30,22 +31,31 @@ public interface IDeviceEndPointFactory<TAddress> where TAddress : notnull {
IDeviceEndPoint Create(TAddress address);
}

public interface IDeviceInfo {
string? FirmwareVersion { get; }
string? HardwareVersion { get; }
ReadOnlySpan<byte> Id { get; }
PhysicalAddress? MacAddress { get; }
string? ModelName { get; }
}

public interface IDynamicDeviceEndPoint : IDeviceEndPoint {
void Invalidate();
}

public interface IMulticolorSmartLight : ISmartDevice {
ValueTask SetBrightnessAsync(int brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
public interface IMulticolorSmartLight : ISmartLight {
ValueTask SetColorAsync(int hue, int saturation, int? brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
ValueTask SetColorTemperatureAsync(int colorTemperature, int? brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
}

public interface ISmartDevice {
ValueTask<IDeviceInfo> GetDeviceInfoAsync(CancellationToken cancellationToken = default);
ValueTask<bool> GetOnOffStateAsync(CancellationToken cancellationToken);
ValueTask SetOnOffStateAsync(bool newOnOffState, CancellationToken cancellationToken);
}

public interface ISmartPlug : ISmartDevice {
public interface ISmartLight : ISmartDevice {
ValueTask SetBrightnessAsync(int brightness, TimeSpan transitionPeriod, CancellationToken cancellationToken);
}

public static class DeviceEndPoint {
Expand Down Expand Up @@ -79,6 +89,13 @@ public sealed class StaticDeviceEndPoint : IDeviceEndPoint {
}

namespace Smdn.TPSmartHomeDevices.Json {
public sealed class Base16ByteArrayJsonConverter : JsonConverter<byte[]> {
public Base16ByteArrayJsonConverter() {}

public override byte[]? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {}
[...] public override <unknown> Write(...) {}
}

public sealed class GeolocationInDecimalDegreesJsonConverter : JsonConverter<decimal?> {
public GeolocationInDecimalDegreesJsonConverter() {}

Expand Down