diff --git a/doc/api-list/Smdn.Net.MuninNode/Smdn.Net.MuninNode-net8.0.apilist.cs b/doc/api-list/Smdn.Net.MuninNode/Smdn.Net.MuninNode-net8.0.apilist.cs index 3caafc0..a379024 100644 --- a/doc/api-list/Smdn.Net.MuninNode/Smdn.Net.MuninNode-net8.0.apilist.cs +++ b/doc/api-list/Smdn.Net.MuninNode/Smdn.Net.MuninNode-net8.0.apilist.cs @@ -1,7 +1,7 @@ -// Smdn.Net.MuninNode.dll (Smdn.Net.MuninNode-2.4.0) +// Smdn.Net.MuninNode.dll (Smdn.Net.MuninNode-2.5.0) // Name: Smdn.Net.MuninNode -// AssemblyVersion: 2.4.0.0 -// InformationalVersion: 2.4.0+6578cec572157dafbc9518cc746aae28f7f1ce6d +// AssemblyVersion: 2.5.0.0 +// InformationalVersion: 2.5.0+41ff114bf69b864033a05a389896010d3eefe4d5 // TargetFramework: .NETCoreApp,Version=v8.0 // Configuration: Release // Referenced assemblies: @@ -71,7 +71,7 @@ protected LocalNode(IMuninNodeListenerFactory? listenerFactory, IAccessRule? acc protected override Socket CreateServerSocket() {} } - public sealed class MuninNodeOptions { + public class MuninNodeOptions { public const string DefaultHostName = "munin-node.localhost"; public const int DefaultPort = 4949; @@ -86,6 +86,7 @@ public MuninNodeOptions() {} public MuninNodeOptions AllowFrom(IReadOnlyList addresses, bool shouldConsiderIPv4MappedIPv6Address = true) {} public MuninNodeOptions AllowFromLoopbackOnly() {} + internal protected virtual void Configure(MuninNodeOptions baseOptions) {} public MuninNodeOptions UseAnyAddress() {} public MuninNodeOptions UseAnyAddress(int port) {} public MuninNodeOptions UseLoopbackAddress() {} @@ -128,13 +129,18 @@ public Task RunAsync(CancellationToken cancellationToken) {} [Obsolete("This method will be deprecated in the future.Use IMuninNodeListenerFactory and StartAsync instead.Make sure to override CreateServerSocket if you need to use this method.")] public void Start() {} public ValueTask StartAsync(CancellationToken cancellationToken = default) {} + protected virtual ValueTask StartedAsync(CancellationToken cancellationToken) {} + protected virtual ValueTask StartingAsync(CancellationToken cancellationToken) {} public ValueTask StopAsync(CancellationToken cancellationToken = default) {} + protected virtual ValueTask StoppedAsync(CancellationToken cancellationToken) {} + protected virtual ValueTask StoppingAsync(CancellationToken cancellationToken) {} protected void ThrowIfDisposed() {} protected void ThrowIfPluginProviderIsNull() {} } } namespace Smdn.Net.MuninNode.DependencyInjection { + [Obsolete("Use or inherit MuninNodeBuilder instead.")] public interface IMuninNodeBuilder { string ServiceKey { get; } IServiceCollection Services { get; } @@ -146,6 +152,7 @@ public interface IMuninServiceBuilder { IServiceCollection Services { get; } } + [Obsolete("Use MuninNodeBuilderExtensions instead.")] public static class IMuninNodeBuilderExtensions { public static IMuninNodeBuilder AddPlugin(this IMuninNodeBuilder builder, Func buildPlugin) {} public static IMuninNodeBuilder AddPlugin(this IMuninNodeBuilder builder, IPlugin plugin) {} @@ -162,11 +169,39 @@ public static IMuninNodeBuilder UseSessionCallback(this IMuninNodeBuilder builde public static class IMuninServiceBuilderExtensions { public static IMuninNodeBuilder AddNode(this IMuninServiceBuilder builder) {} public static IMuninNodeBuilder AddNode(this IMuninServiceBuilder builder, Action configure) {} + public static TMuninNodeBuilder AddNode(this IMuninServiceBuilder builder, Action configure, Func createBuilder) where TMuninNode : class, IMuninNode where TMuninNodeOptions : MuninNodeOptions, new() where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder AddNode(this IMuninServiceBuilder builder, Action configure, Func createBuilder) where TMuninNodeOptions : MuninNodeOptions, new() where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder AddNode(this IMuninServiceBuilder builder, Action configure, Func createBuilder) where TMuninNodeService : class, IMuninNode where TMuninNodeImplementation : class, TMuninNodeService where TMuninNodeOptions : MuninNodeOptions, new() where TMuninNodeBuilder : MuninNodeBuilder {} } public static class IServiceCollectionExtensions { public static IServiceCollection AddMunin(this IServiceCollection services, Action configure) {} } + + public class MuninNodeBuilder : IMuninNodeBuilder { + internal protected MuninNodeBuilder(IMuninServiceBuilder serviceBuilder, string serviceKey) {} + + public string ServiceKey { get; } + public IServiceCollection Services { get; } + + protected virtual IMuninNode Build(IPluginProvider pluginProvider, IMuninNodeListenerFactory? listenerFactory, IServiceProvider serviceProvider) {} + public IMuninNode Build(IServiceProvider serviceProvider) {} + protected TMuninNodeOptions GetConfiguredOptions(IServiceProvider serviceProvider) where TMuninNodeOptions : MuninNodeOptions {} + } + + public static class MuninNodeBuilderExtensions { + public static TMuninNodeBuilder AddPlugin(this TMuninNodeBuilder builder, Func buildPlugin) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder AddPlugin(this TMuninNodeBuilder builder, IPlugin plugin) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNode Build(this MuninNodeBuilder builder, IServiceProvider serviceProvider) where TMuninNode : IMuninNode {} + public static TMuninNodeBuilder UseListenerFactory(this TMuninNodeBuilder builder, Func> createListenerAsyncFunc) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseListenerFactory(this TMuninNodeBuilder builder, Func buildListenerFactory) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseListenerFactory(this TMuninNodeBuilder builder, IMuninNodeListenerFactory listenerFactory) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UsePluginProvider(this TMuninNodeBuilder builder, Func buildPluginProvider) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UsePluginProvider(this TMuninNodeBuilder builder, IPluginProvider pluginProvider) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseSessionCallback(this TMuninNodeBuilder builder, Func buildSessionCallback) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseSessionCallback(this TMuninNodeBuilder builder, Func? reportSessionStartedAsyncFunc, Func? reportSessionClosedAsyncFunc) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseSessionCallback(this TMuninNodeBuilder builder, INodeSessionCallback sessionCallback) where TMuninNodeBuilder : MuninNodeBuilder {} + } } namespace Smdn.Net.MuninNode.Protocol { @@ -475,6 +510,8 @@ public PluginGraphAttributesBuilder WithGraphRigid() {} public PluginGraphAttributesBuilder WithGraphUpperLimit(double @value) {} public PluginGraphAttributesBuilder WithHeight(int height) {} public PluginGraphAttributesBuilder WithSize(int width, int height) {} + [MemberNotNull("title")] + public PluginGraphAttributesBuilder WithTitle(string title) {} public PluginGraphAttributesBuilder WithTotal(string labelForTotal) {} public PluginGraphAttributesBuilder WithUpdateRate(TimeSpan updateRate) {} public PluginGraphAttributesBuilder WithVerticalLabel(string verticalLabel) {} diff --git a/doc/api-list/Smdn.Net.MuninNode/Smdn.Net.MuninNode-netstandard2.1.apilist.cs b/doc/api-list/Smdn.Net.MuninNode/Smdn.Net.MuninNode-netstandard2.1.apilist.cs index 640a17f..1cf4e93 100644 --- a/doc/api-list/Smdn.Net.MuninNode/Smdn.Net.MuninNode-netstandard2.1.apilist.cs +++ b/doc/api-list/Smdn.Net.MuninNode/Smdn.Net.MuninNode-netstandard2.1.apilist.cs @@ -1,7 +1,7 @@ -// Smdn.Net.MuninNode.dll (Smdn.Net.MuninNode-2.4.0) +// Smdn.Net.MuninNode.dll (Smdn.Net.MuninNode-2.5.0) // Name: Smdn.Net.MuninNode -// AssemblyVersion: 2.4.0.0 -// InformationalVersion: 2.4.0+6578cec572157dafbc9518cc746aae28f7f1ce6d +// AssemblyVersion: 2.5.0.0 +// InformationalVersion: 2.5.0+41ff114bf69b864033a05a389896010d3eefe4d5 // TargetFramework: .NETStandard,Version=v2.1 // Configuration: Release // Referenced assemblies: @@ -63,7 +63,7 @@ protected LocalNode(IMuninNodeListenerFactory? listenerFactory, IAccessRule? acc protected override Socket CreateServerSocket() {} } - public sealed class MuninNodeOptions { + public class MuninNodeOptions { public const string DefaultHostName = "munin-node.localhost"; public const int DefaultPort = 4949; @@ -78,6 +78,7 @@ public MuninNodeOptions() {} public MuninNodeOptions AllowFrom(IReadOnlyList addresses, bool shouldConsiderIPv4MappedIPv6Address = true) {} public MuninNodeOptions AllowFromLoopbackOnly() {} + internal protected virtual void Configure(MuninNodeOptions baseOptions) {} public MuninNodeOptions UseAnyAddress() {} public MuninNodeOptions UseAnyAddress(int port) {} public MuninNodeOptions UseLoopbackAddress() {} @@ -120,13 +121,18 @@ public Task RunAsync(CancellationToken cancellationToken) {} [Obsolete("This method will be deprecated in the future.Use IMuninNodeListenerFactory and StartAsync instead.Make sure to override CreateServerSocket if you need to use this method.")] public void Start() {} public ValueTask StartAsync(CancellationToken cancellationToken = default) {} + protected virtual ValueTask StartedAsync(CancellationToken cancellationToken) {} + protected virtual ValueTask StartingAsync(CancellationToken cancellationToken) {} public ValueTask StopAsync(CancellationToken cancellationToken = default) {} + protected virtual ValueTask StoppedAsync(CancellationToken cancellationToken) {} + protected virtual ValueTask StoppingAsync(CancellationToken cancellationToken) {} protected void ThrowIfDisposed() {} protected void ThrowIfPluginProviderIsNull() {} } } namespace Smdn.Net.MuninNode.DependencyInjection { + [Obsolete("Use or inherit MuninNodeBuilder instead.")] public interface IMuninNodeBuilder { string ServiceKey { get; } IServiceCollection Services { get; } @@ -138,6 +144,7 @@ public interface IMuninServiceBuilder { IServiceCollection Services { get; } } + [Obsolete("Use MuninNodeBuilderExtensions instead.")] public static class IMuninNodeBuilderExtensions { public static IMuninNodeBuilder AddPlugin(this IMuninNodeBuilder builder, Func buildPlugin) {} public static IMuninNodeBuilder AddPlugin(this IMuninNodeBuilder builder, IPlugin plugin) {} @@ -154,11 +161,39 @@ public static IMuninNodeBuilder UseSessionCallback(this IMuninNodeBuilder builde public static class IMuninServiceBuilderExtensions { public static IMuninNodeBuilder AddNode(this IMuninServiceBuilder builder) {} public static IMuninNodeBuilder AddNode(this IMuninServiceBuilder builder, Action configure) {} + public static TMuninNodeBuilder AddNode(this IMuninServiceBuilder builder, Action configure, Func createBuilder) where TMuninNode : class, IMuninNode where TMuninNodeOptions : MuninNodeOptions, new() where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder AddNode(this IMuninServiceBuilder builder, Action configure, Func createBuilder) where TMuninNodeOptions : MuninNodeOptions, new() where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder AddNode(this IMuninServiceBuilder builder, Action configure, Func createBuilder) where TMuninNodeService : class, IMuninNode where TMuninNodeImplementation : class, TMuninNodeService where TMuninNodeOptions : MuninNodeOptions, new() where TMuninNodeBuilder : MuninNodeBuilder {} } public static class IServiceCollectionExtensions { public static IServiceCollection AddMunin(this IServiceCollection services, Action configure) {} } + + public class MuninNodeBuilder : IMuninNodeBuilder { + internal protected MuninNodeBuilder(IMuninServiceBuilder serviceBuilder, string serviceKey) {} + + public string ServiceKey { get; } + public IServiceCollection Services { get; } + + protected virtual IMuninNode Build(IPluginProvider pluginProvider, IMuninNodeListenerFactory? listenerFactory, IServiceProvider serviceProvider) {} + public IMuninNode Build(IServiceProvider serviceProvider) {} + protected TMuninNodeOptions GetConfiguredOptions(IServiceProvider serviceProvider) where TMuninNodeOptions : MuninNodeOptions {} + } + + public static class MuninNodeBuilderExtensions { + public static TMuninNodeBuilder AddPlugin(this TMuninNodeBuilder builder, Func buildPlugin) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder AddPlugin(this TMuninNodeBuilder builder, IPlugin plugin) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNode Build(this MuninNodeBuilder builder, IServiceProvider serviceProvider) where TMuninNode : IMuninNode {} + public static TMuninNodeBuilder UseListenerFactory(this TMuninNodeBuilder builder, Func> createListenerAsyncFunc) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseListenerFactory(this TMuninNodeBuilder builder, Func buildListenerFactory) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseListenerFactory(this TMuninNodeBuilder builder, IMuninNodeListenerFactory listenerFactory) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UsePluginProvider(this TMuninNodeBuilder builder, Func buildPluginProvider) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UsePluginProvider(this TMuninNodeBuilder builder, IPluginProvider pluginProvider) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseSessionCallback(this TMuninNodeBuilder builder, Func buildSessionCallback) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseSessionCallback(this TMuninNodeBuilder builder, Func? reportSessionStartedAsyncFunc, Func? reportSessionClosedAsyncFunc) where TMuninNodeBuilder : MuninNodeBuilder {} + public static TMuninNodeBuilder UseSessionCallback(this TMuninNodeBuilder builder, INodeSessionCallback sessionCallback) where TMuninNodeBuilder : MuninNodeBuilder {} + } } namespace Smdn.Net.MuninNode.Protocol { @@ -467,6 +502,7 @@ public PluginGraphAttributesBuilder WithGraphRigid() {} public PluginGraphAttributesBuilder WithGraphUpperLimit(double @value) {} public PluginGraphAttributesBuilder WithHeight(int height) {} public PluginGraphAttributesBuilder WithSize(int width, int height) {} + public PluginGraphAttributesBuilder WithTitle(string title) {} public PluginGraphAttributesBuilder WithTotal(string labelForTotal) {} public PluginGraphAttributesBuilder WithUpdateRate(TimeSpan updateRate) {} public PluginGraphAttributesBuilder WithVerticalLabel(string verticalLabel) {}