Skip to content

Commit 8b351d0

Browse files
authored
Merge pull request #26 from smdn/releases/Smdn.Net.SmartMeter.Extensions.Munin-2.2.0-1764250758
Release main/Smdn.Net.SmartMeter.Extensions.Munin-2.2.0
2 parents fbeec92 + f587337 commit 8b351d0

File tree

3 files changed

+226
-10
lines changed

3 files changed

+226
-10
lines changed
Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
// Smdn.Net.SmartMeter.Extensions.Munin.dll (Smdn.Net.SmartMeter.Extensions.Munin-2.2.0)
2+
// Name: Smdn.Net.SmartMeter.Extensions.Munin
3+
// AssemblyVersion: 2.2.0.0
4+
// InformationalVersion: 2.2.0+291dc030d4c0805f26c6d95ef97ee47c2d34e54d
5+
// TargetFramework: .NETCoreApp,Version=v10.0
6+
// Configuration: Release
7+
// Referenced assemblies:
8+
// Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
9+
// Microsoft.Extensions.Hosting.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
10+
// Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
11+
// Smdn.Net.EchonetLite, Version=2.1.0.0, Culture=neutral
12+
// Smdn.Net.EchonetLite.RouteB, Version=2.1.0.0, Culture=neutral
13+
// Smdn.Net.EchonetLite.RouteB.Primitives, Version=2.1.0.0, Culture=neutral
14+
// Smdn.Net.MuninNode, Version=2.5.0.0, Culture=neutral
15+
// Smdn.Net.MuninNode.Hosting, Version=3.1.0.0, Culture=neutral
16+
// Smdn.Net.SmartMeter, Version=2.1.0.0, Culture=neutral
17+
// System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
18+
// System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
19+
// System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
20+
// System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
21+
// System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
22+
// System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
23+
// System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
24+
#nullable enable annotations
25+
26+
using System;
27+
using System.Collections.Generic;
28+
using System.Diagnostics.CodeAnalysis;
29+
using System.Net;
30+
using System.Threading;
31+
using System.Threading.Tasks;
32+
using Microsoft.Extensions.DependencyInjection;
33+
using Microsoft.Extensions.Hosting;
34+
using Microsoft.Extensions.Logging;
35+
using Smdn.Net.EchonetLite.RouteB;
36+
using Smdn.Net.EchonetLite.RouteB.DependencyInjection;
37+
using Smdn.Net.MuninNode;
38+
using Smdn.Net.MuninNode.DependencyInjection;
39+
using Smdn.Net.MuninNode.Hosting;
40+
using Smdn.Net.MuninNode.Transport;
41+
using Smdn.Net.MuninPlugin;
42+
using Smdn.Net.SmartMeter;
43+
using Smdn.Net.SmartMeter.MuninNode;
44+
using Smdn.Net.SmartMeter.MuninNode.Hosting;
45+
using Smdn.Net.SmartMeter.MuninNode.Hosting.Systemd;
46+
using Smdn.Net.SmartMeter.MuninPlugin;
47+
48+
namespace Smdn.Net.MuninNode.DependencyInjection {
49+
public static class IMuninServiceBuilderExtensions {
50+
public static SmartMeterMuninNodeBuilder AddSmartMeterMuninNode(this IMuninServiceBuilder builder, Action<MuninNodeOptions> configureMuninNodeOptions, Action<IRouteBServiceBuilder<string>> configureRouteBServices) {}
51+
}
52+
}
53+
54+
namespace Smdn.Net.SmartMeter.MuninNode {
55+
public sealed class SmartMeterMuninNode : LocalNode {
56+
public event EventHandler<Exception>? UnhandledAggregationException { add; remove; }
57+
58+
public override string HostName { get; }
59+
public override IPluginProvider PluginProvider { get; }
60+
61+
protected override void Dispose(bool disposing) {}
62+
protected override async ValueTask DisposeAsyncCore() {}
63+
protected override EndPoint GetLocalEndPointToBind() {}
64+
protected override ValueTask StartedAsync(CancellationToken cancellationToken) {}
65+
protected override async ValueTask StartingAsync(CancellationToken cancellationToken) {}
66+
protected override async ValueTask StoppedAsync(CancellationToken cancellationToken) {}
67+
}
68+
69+
public sealed class SmartMeterMuninNodeBuilder : MuninNodeBuilder {
70+
protected override IMuninNode Build(IPluginProvider pluginProvider, IMuninNodeListenerFactory? listenerFactory, IServiceProvider serviceProvider) {}
71+
}
72+
73+
public static class SmartMeterMuninNodeBuilderExtensions {
74+
public static SmartMeterMuninNodeBuilder AddCumulativeElectricEnergyAtEvery30MinPlugin(this SmartMeterMuninNodeBuilder builder, bool enableNormalDirection = true, bool enableReverseDirection = false, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
75+
public static SmartMeterMuninNodeBuilder AddCumulativeElectricEnergyAtEvery30MinPlugin(this SmartMeterMuninNodeBuilder builder, string name, bool enableNormalDirection = true, bool enableReverseDirection = false, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
76+
public static SmartMeterMuninNodeBuilder AddDailyCumulativeElectricEnergyPlugin(this SmartMeterMuninNodeBuilder builder, bool enableNormalDirection = true, bool enableReverseDirection = false, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
77+
public static SmartMeterMuninNodeBuilder AddDailyCumulativeElectricEnergyPlugin(this SmartMeterMuninNodeBuilder builder, string name, bool enableNormalDirection = true, bool enableReverseDirection = false, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
78+
public static SmartMeterMuninNodeBuilder AddInstantaneousCurrentPlugin(this SmartMeterMuninNodeBuilder builder, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
79+
public static SmartMeterMuninNodeBuilder AddInstantaneousCurrentPlugin(this SmartMeterMuninNodeBuilder builder, TimeSpan aggregationInterval, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
80+
public static SmartMeterMuninNodeBuilder AddInstantaneousCurrentPlugin(this SmartMeterMuninNodeBuilder builder, string name, TimeSpan aggregationInterval, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
81+
public static SmartMeterMuninNodeBuilder AddInstantaneousElectricPowerPlugin(this SmartMeterMuninNodeBuilder builder, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
82+
public static SmartMeterMuninNodeBuilder AddInstantaneousElectricPowerPlugin(this SmartMeterMuninNodeBuilder builder, TimeSpan aggregationInterval, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
83+
public static SmartMeterMuninNodeBuilder AddInstantaneousElectricPowerPlugin(this SmartMeterMuninNodeBuilder builder, string name, TimeSpan aggregationInterval, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
84+
public static SmartMeterMuninNodeBuilder AddMonthlyCumulativeElectricEnergyPlugin(this SmartMeterMuninNodeBuilder builder, bool enableNormalDirection = true, bool enableReverseDirection = false, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
85+
public static SmartMeterMuninNodeBuilder AddMonthlyCumulativeElectricEnergyPlugin(this SmartMeterMuninNodeBuilder builder, string name, bool enableNormalDirection = true, bool enableReverseDirection = false, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
86+
public static SmartMeterMuninNodeBuilder AddWeeklyCumulativeElectricEnergyPlugin(this SmartMeterMuninNodeBuilder builder, DayOfWeek firstDayOfWeek = DayOfWeek.Sunday, bool enableNormalDirection = true, bool enableReverseDirection = false, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
87+
public static SmartMeterMuninNodeBuilder AddWeeklyCumulativeElectricEnergyPlugin(this SmartMeterMuninNodeBuilder builder, string name, DayOfWeek firstDayOfWeek = DayOfWeek.Sunday, bool enableNormalDirection = true, bool enableReverseDirection = false, Action<PluginGraphAttributesBuilder>? configureGraphAttributes = null) {}
88+
}
89+
}
90+
91+
namespace Smdn.Net.SmartMeter.MuninNode.Hosting {
92+
public class AggregationHaltedException : InvalidOperationException {
93+
public AggregationHaltedException() {}
94+
public AggregationHaltedException(string message) {}
95+
public AggregationHaltedException(string message, Exception? innerException) {}
96+
}
97+
98+
public static class IServiceCollectionExtensions {
99+
public static IServiceCollection AddHostedSmartMeterMuninNodeService(this IServiceCollection services, Action<IRouteBServiceBuilder<string>> configureRouteBServices, Action<MuninNodeOptions> configureMuninNodeOptions, Action<SmartMeterMuninNodeBuilder> configureSmartMeterMuninNode) {}
100+
public static IServiceCollection AddHostedSmartMeterMuninNodeService<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TSmartMeterMuninNodeService>(this IServiceCollection services, Action<IRouteBServiceBuilder<string>> configureRouteBServices, Action<MuninNodeOptions> configureMuninNodeOptions, Action<SmartMeterMuninNodeBuilder> configureSmartMeterMuninNode) where TSmartMeterMuninNodeService : SmartMeterMuninNodeService {}
101+
}
102+
103+
public class SmartMeterMuninNodeService : MuninNodeBackgroundService {
104+
public SmartMeterMuninNodeService(SmartMeterMuninNode smartMeterMuninNode, ILogger<SmartMeterMuninNodeService>? logger = null) {}
105+
106+
protected bool HasAggregationHalted { get; }
107+
108+
public override void Dispose() {}
109+
protected override async Task ExecuteAsync(CancellationToken stoppingToken) {}
110+
protected virtual void OnAggregationHalted(Exception exception) {}
111+
protected bool TryGetAggregationFaultedException([NotNullWhen(true)] out Exception? unhandledAggregationException) {}
112+
}
113+
}
114+
115+
namespace Smdn.Net.SmartMeter.MuninNode.Hosting.Systemd {
116+
public static class IServiceCollectionExtensions {
117+
public static IServiceCollection AddHostedSmartMeterMuninNodeSystemdService(this IServiceCollection services, Action<IRouteBServiceBuilder<string>> configureRouteBServices, Action<MuninNodeOptions> configureMuninNodeOptions, Action<SmartMeterMuninNodeBuilder> configureSmartMeterMuninNode) {}
118+
public static IServiceCollection AddHostedSmartMeterMuninNodeSystemdService<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TSmartMeterMuninNodeSystemdService>(this IServiceCollection services, Action<IRouteBServiceBuilder<string>> configureRouteBServices, Action<MuninNodeOptions> configureMuninNodeOptions, Action<SmartMeterMuninNodeBuilder> configureSmartMeterMuninNode) where TSmartMeterMuninNodeSystemdService : SmartMeterMuninNodeSystemdService {}
119+
}
120+
121+
public class SmartMeterMuninNodeSystemdService : SmartMeterMuninNodeService {
122+
protected const int EX_TEMPFAIL = 75;
123+
protected const int EX_UNAVAILABLE = 69;
124+
125+
public SmartMeterMuninNodeSystemdService(SmartMeterMuninNode smartMeterMuninNode, IHostApplicationLifetime applicationLifetime, ILogger<SmartMeterMuninNodeSystemdService>? logger = null) {}
126+
127+
public int? ExitCode { get; }
128+
129+
protected virtual bool DetermineExitCodeForUnhandledException(Exception exception, out int exitCode, [NotNullWhen(true)] out string? logMessage) {}
130+
protected override void OnAggregationHalted(Exception exception) {}
131+
public override async Task StartAsync(CancellationToken cancellationToken) {}
132+
public override async Task StopAsync(CancellationToken cancellationToken) {}
133+
}
134+
}
135+
136+
namespace Smdn.Net.SmartMeter.MuninPlugin {
137+
public sealed class CumulativeElectricEnergyAtEvery30MinPlugin : PeriodicCumulativeElectricEnergyPlugin {
138+
public const string DefaultPluginName = "cumulative_electric_energy";
139+
140+
public override TimeSpan DurationOfMeasurementPeriod { get; }
141+
public override DateTime StartOfMeasurementPeriod { get; }
142+
143+
protected override bool TryGetBaselineValue(bool normalOrReverseDirection, out MeasurementValue<ElectricEnergyValue> @value) {}
144+
}
145+
146+
public sealed class DailyCumulativeElectricEnergyPlugin : PeriodicCumulativeElectricEnergyPlugin {
147+
public const string DefaultPluginName = "cumulative_electric_energy_daily";
148+
149+
public override TimeSpan DurationOfMeasurementPeriod { get; }
150+
public override DateTime StartOfMeasurementPeriod { get; }
151+
}
152+
153+
public sealed class InstantaneousCurrentPlugin :
154+
InstantaneousCurrentAggregation,
155+
IPlugin,
156+
IPluginDataSource
157+
{
158+
public const string DefaultPluginName = "instantaneous_current";
159+
160+
public IPluginDataSource DataSource { get; }
161+
public IReadOnlyCollection<IPluginField> Fields { get; }
162+
public IPluginGraphAttributes GraphAttributes { get; }
163+
public string Name { get; }
164+
public INodeSessionCallback? SessionCallback { get; }
165+
166+
protected override void OnLatestValueUpdated() {}
167+
}
168+
169+
public sealed class InstantaneousElectricPowerPlugin :
170+
InstantaneousElectricPowerAggregation,
171+
IPlugin,
172+
IPluginDataSource
173+
{
174+
public const string DefaultPluginName = "instantaneous_electric_power";
175+
176+
public IPluginDataSource DataSource { get; }
177+
public IReadOnlyCollection<IPluginField> Fields { get; }
178+
public IPluginGraphAttributes GraphAttributes { get; }
179+
public string Name { get; }
180+
public INodeSessionCallback? SessionCallback { get; }
181+
182+
protected override void OnLatestValueUpdated() {}
183+
}
184+
185+
public sealed class MonthlyCumulativeElectricEnergyPlugin : PeriodicCumulativeElectricEnergyPlugin {
186+
public const string DefaultPluginName = "cumulative_electric_energy_monthly";
187+
188+
public override TimeSpan DurationOfMeasurementPeriod { get; }
189+
public override DateTime StartOfMeasurementPeriod { get; }
190+
}
191+
192+
public abstract class PeriodicCumulativeElectricEnergyPlugin :
193+
PeriodicCumulativeElectricEnergyAggregation,
194+
IPlugin,
195+
IPluginDataSource
196+
{
197+
public IPluginDataSource DataSource { get; }
198+
public IReadOnlyCollection<IPluginField> Fields { get; }
199+
public IPluginGraphAttributes GraphAttributes { get; }
200+
public string Name { get; }
201+
public INodeSessionCallback? SessionCallback { get; }
202+
203+
protected override void OnNormalDirectionValueChanged() {}
204+
protected override void OnReverseDirectionValueChanged() {}
205+
}
206+
207+
public sealed class WeeklyCumulativeElectricEnergyPlugin : PeriodicCumulativeElectricEnergyPlugin {
208+
public const string DefaultPluginName = "cumulative_electric_energy_weekly";
209+
210+
public override TimeSpan DurationOfMeasurementPeriod { get; }
211+
public DayOfWeek FirstDayOfWeek { get; }
212+
public override DateTime StartOfMeasurementPeriod { get; }
213+
}
214+
}
215+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.0.0.
216+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

doc/api-list/Smdn.Net.SmartMeter.Extensions.Munin/Smdn.Net.SmartMeter.Extensions.Munin-net8.0.apilist.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
// Smdn.Net.SmartMeter.Extensions.Munin.dll (Smdn.Net.SmartMeter.Extensions.Munin-2.1.0)
1+
// Smdn.Net.SmartMeter.Extensions.Munin.dll (Smdn.Net.SmartMeter.Extensions.Munin-2.2.0)
22
// Name: Smdn.Net.SmartMeter.Extensions.Munin
3-
// AssemblyVersion: 2.1.0.0
4-
// InformationalVersion: 2.1.0+d6881059bda1389c20c3dc8eacfd375f4dd752fe
3+
// AssemblyVersion: 2.2.0.0
4+
// InformationalVersion: 2.2.0+291dc030d4c0805f26c6d95ef97ee47c2d34e54d
55
// TargetFramework: .NETCoreApp,Version=v8.0
66
// Configuration: Release
77
// Referenced assemblies:
@@ -212,5 +212,5 @@ public sealed class WeeklyCumulativeElectricEnergyPlugin : PeriodicCumulativeEle
212212
public override DateTime StartOfMeasurementPeriod { get; }
213213
}
214214
}
215-
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.6.0.0.
216-
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.4.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
215+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.0.0.
216+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

doc/api-list/Smdn.Net.SmartMeter.Extensions.Munin/Smdn.Net.SmartMeter.Extensions.Munin-netstandard2.1.apilist.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
// Smdn.Net.SmartMeter.Extensions.Munin.dll (Smdn.Net.SmartMeter.Extensions.Munin-2.1.0)
1+
// Smdn.Net.SmartMeter.Extensions.Munin.dll (Smdn.Net.SmartMeter.Extensions.Munin-2.2.0)
22
// Name: Smdn.Net.SmartMeter.Extensions.Munin
3-
// AssemblyVersion: 2.1.0.0
4-
// InformationalVersion: 2.1.0+d6881059bda1389c20c3dc8eacfd375f4dd752fe
3+
// AssemblyVersion: 2.2.0.0
4+
// InformationalVersion: 2.2.0+291dc030d4c0805f26c6d95ef97ee47c2d34e54d
55
// TargetFramework: .NETStandard,Version=v2.1
66
// Configuration: Release
77
// Referenced assemblies:
@@ -206,5 +206,5 @@ public sealed class WeeklyCumulativeElectricEnergyPlugin : PeriodicCumulativeEle
206206
public override DateTime StartOfMeasurementPeriod { get; }
207207
}
208208
}
209-
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.6.0.0.
210-
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.4.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
209+
// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.7.0.0.
210+
// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.5.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)

0 commit comments

Comments
 (0)