1- // Smdn.Net.SmartMeter.dll (Smdn.Net.SmartMeter-2.0 .0)
1+ // Smdn.Net.SmartMeter.dll (Smdn.Net.SmartMeter-2.1 .0)
22// Name: Smdn.Net.SmartMeter
3- // AssemblyVersion: 2.0 .0.0
4- // InformationalVersion: 2.0 .0+1702d101b7d7da969b9b6258406b4aea5a1b98b4
3+ // AssemblyVersion: 2.1 .0.0
4+ // InformationalVersion: 2.1 .0+01af802c78a13826892462d3e0ae20ee33327eb5
55// TargetFramework: .NETCoreApp,Version=v8.0
66// Configuration: Release
77// Referenced assemblies:
8- // Microsoft.Extensions.DependencyInjection.Abstractions, Version=6 .0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
8+ // Microsoft.Extensions.DependencyInjection.Abstractions, Version=8 .0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
99// Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
1010// Polly.Core, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
11- // Smdn.Net.EchonetLite, Version=2.0.0.0, Culture=neutral
12- // Smdn.Net.EchonetLite.RouteB, Version=2.0.0.0, Culture=neutral
13- // Smdn.Net.EchonetLite.RouteB.Primitives, Version=2.0.0.0, Culture=neutral
11+ // Polly.Extensions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc
12+ // Smdn.Extensions.Polly.KeyedRegistry, Version=1.2.0.0, Culture=neutral
13+ // Smdn.Net.EchonetLite, Version=2.1.0.0, Culture=neutral
14+ // Smdn.Net.EchonetLite.RouteB, Version=2.1.0.0, Culture=neutral
15+ // Smdn.Net.EchonetLite.RouteB.Primitives, Version=2.1.0.0, Culture=neutral
1416// System.Collections, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
1517// System.ComponentModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
1618// System.ComponentModel.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
2628using System . Runtime . CompilerServices ;
2729using System . Threading ;
2830using System . Threading . Tasks ;
31+ using Microsoft . Extensions . DependencyInjection ;
2932using Microsoft . Extensions . Logging ;
33+ using Polly ;
34+ using Polly . DependencyInjection ;
3035using Polly . Registry ;
36+ using Polly . Registry . KeyedRegistry ;
3137using Smdn . Net . EchonetLite . RouteB ;
3238using Smdn . Net . EchonetLite . RouteB . Credentials ;
3339using Smdn . Net . EchonetLite . RouteB . Transport ;
3440using Smdn . Net . SmartMeter ;
3541
42+ namespace Smdn . Net . EchonetLite . RouteB . DependencyInjection {
43+ public static class SmartMeterDataAggregatorRouteBServiceBuilderExtensions {
44+ public static IRouteBServiceBuilder < TServiceKey > AddResiliencePipelineAggregationDataAcquisition < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
45+ public static IRouteBServiceBuilder < TServiceKey > AddResiliencePipelineDataAggregationTask < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
46+ public static IRouteBServiceBuilder < TServiceKey > AddResiliencePipelineSmartMeterConnection < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
47+ public static IRouteBServiceBuilder < TServiceKey > AddResiliencePipelineSmartMeterReadProperty < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
48+ public static IRouteBServiceBuilder < TServiceKey > AddResiliencePipelineSmartMeterReconnection < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
49+ public static IRouteBServiceBuilder < TServiceKey > AddResiliencePipelineSmartMeterWriteProperty < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
50+ public static IRouteBServiceBuilder < TServiceKey > AddResiliencePipelineUpdatingElectricEnergyBaseline < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
51+ public static IRouteBServiceBuilder < TServiceKey > AddRetryAggregationDataAcquisitionTimeout < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , int maxRetryAttempt , TimeSpan delay , Action < RetryStrategyOptions , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configureRetryOptions = null , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configurePipeline = null ) { }
52+ public static IRouteBServiceBuilder < TServiceKey > AddRetryDataAggregationTaskException < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , int maxRetryAttempt , TimeSpan delay , Action < PredicateBuilder > configureExceptionPredicates , Action < RetryStrategyOptions , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configureRetryOptions = null , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configurePipeline = null ) { }
53+ public static IRouteBServiceBuilder < TServiceKey > AddRetrySmartMeterConnectionTimeout < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , int maxRetryAttempt , TimeSpan delay , Action < RetryStrategyOptions , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configureRetryOptions = null , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configurePipeline = null ) { }
54+ public static IRouteBServiceBuilder < TServiceKey > AddRetrySmartMeterReadPropertyException < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , int maxRetryAttempt , TimeSpan delay , Action < PredicateBuilder > configureExceptionPredicates , Action < RetryStrategyOptions , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configureRetryOptions = null , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configurePipeline = null ) { }
55+ public static IRouteBServiceBuilder < TServiceKey > AddRetrySmartMeterReconnectionTimeout < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , int maxRetryAttempt , TimeSpan delay , Action < RetryStrategyOptions , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configureRetryOptions = null , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configurePipeline = null ) { }
56+ public static IRouteBServiceBuilder < TServiceKey > AddRetrySmartMeterWritePropertyException < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , int maxRetryAttempt , TimeSpan delay , Action < PredicateBuilder > configureExceptionPredicates , Action < RetryStrategyOptions , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configureRetryOptions = null , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configurePipeline = null ) { }
57+ public static IRouteBServiceBuilder < TServiceKey > AddRetryUpdatingElectricEnergyBaselineTimeout < TServiceKey > ( this IRouteBServiceBuilder < TServiceKey > builder , int maxRetryAttempt , TimeSpan delay , Action < RetryStrategyOptions , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configureRetryOptions = null , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > ? configurePipeline = null ) { }
58+ }
59+ }
60+
3661namespace Smdn . Net . SmartMeter {
3762 public sealed class CumulativeElectricEnergyAggregation : PeriodicCumulativeElectricEnergyAggregation {
3863 public CumulativeElectricEnergyAggregation ( bool aggregateNormalDirection , bool aggregateReverseDirection ) { }
@@ -107,6 +132,29 @@ protected void OnPropertyChanged([CallerMemberName] string? propertyName = null)
107132 }
108133
109134 public class SmartMeterDataAggregator : HemsController {
135+ public readonly struct ResiliencePipelineKeyPair < TServiceKey > :
136+ IEquatable < ResiliencePipelineKeyPair < TServiceKey > > ,
137+ IResiliencePipelineKeyPair < TServiceKey , string >
138+ {
139+ [ CompilerGenerated ]
140+ public static bool operator == ( SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > left , SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > right ) { }
141+ [ CompilerGenerated ]
142+ public static bool operator != ( SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > left , SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > right ) { }
143+
144+ public ResiliencePipelineKeyPair ( TServiceKey serviceKey , string pipelineKey ) { }
145+
146+ public string PipelineKey { get ; }
147+ public TServiceKey ServiceKey { get ; }
148+
149+ [ CompilerGenerated ]
150+ public bool Equals ( SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > other ) { }
151+ [ CompilerGenerated ]
152+ public override bool Equals ( object obj ) { }
153+ [ CompilerGenerated ]
154+ public override int GetHashCode ( ) { }
155+ public override string ToString ( ) { }
156+ }
157+
110158 public static readonly string ResiliencePipelineKeyForAcquirePropertyValuesForAggregatingData = "SmartMeterDataAggregator.resiliencePipelineAcquirePropertyValuesForAggregatingData" ;
111159 public static readonly string ResiliencePipelineKeyForRunAggregationTask = "SmartMeterDataAggregator.resiliencePipelineRunAggregationTask" ;
112160 public static readonly string ResiliencePipelineKeyForSmartMeterConnection = "SmartMeterDataAggregator.resiliencePipelineConnectToSmartMeter" ;
@@ -115,8 +163,12 @@ public class SmartMeterDataAggregator : HemsController {
115163 public static readonly string ResiliencePipelineKeyForSmartMeterReconnection = "SmartMeterDataAggregator.resiliencePipelineReconnectToSmartMeter" ;
116164 public static readonly string ResiliencePipelineKeyForUpdatePeriodicCumulativeElectricEnergyBaselineValue = "SmartMeterDataAggregator.resiliencePipelineUpdatePeriodicCumulativeElectricEnergyBaselineValue" ;
117165
166+ public static SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > CreateResiliencePipelineKeyPair < TServiceKey > ( TServiceKey serviceKey , string pipelineKey ) { }
167+ public static ILogger ? GetLoggerForResiliencePipeline ( ResilienceContext resilienceContext ) { }
168+
118169 public SmartMeterDataAggregator ( IEnumerable < SmartMeterDataAggregation > dataAggregations , IRouteBEchonetLiteHandlerFactory echonetLiteHandlerFactory , IRouteBCredentialProvider routeBCredentialProvider , ResiliencePipelineProvider < string > ? resiliencePipelineProvider , ILogger ? logger , ILoggerFactory ? loggerFactoryForEchonetClient ) { }
119170 public SmartMeterDataAggregator ( IEnumerable < SmartMeterDataAggregation > dataAggregations , IServiceProvider serviceProvider ) { }
171+ public SmartMeterDataAggregator ( IEnumerable < SmartMeterDataAggregation > dataAggregations , IServiceProvider serviceProvider , object ? routeBServiceKey ) { }
120172
121173 public IReadOnlyCollection < SmartMeterDataAggregation > DataAggregations { get ; }
122174 public bool IsRunning { get ; }
@@ -128,6 +180,27 @@ public async ValueTask StartAsync(TaskFactory? aggregationTaskFactory, Cancellat
128180 public async ValueTask StopAsync ( CancellationToken cancellationToken ) { }
129181 }
130182
183+ public static class SmartMeterDataAggregatorServiceCollectionExtensions {
184+ public static IServiceCollection AddResiliencePipelineAggregationDataAcquisition ( this IServiceCollection services , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < string > > configure ) { }
185+ public static IServiceCollection AddResiliencePipelineAggregationDataAcquisition < TServiceKey > ( this IServiceCollection services , TServiceKey serviceKey , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
186+ public static IServiceCollection AddResiliencePipelineDataAggregationTask ( this IServiceCollection services , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < string > > configure ) { }
187+ public static IServiceCollection AddResiliencePipelineDataAggregationTask < TServiceKey > ( this IServiceCollection services , TServiceKey serviceKey , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
188+ public static IServiceCollection AddResiliencePipelineSmartMeterConnection ( this IServiceCollection services , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < string > > configure ) { }
189+ public static IServiceCollection AddResiliencePipelineSmartMeterConnection < TServiceKey > ( this IServiceCollection services , TServiceKey serviceKey , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
190+ public static IServiceCollection AddResiliencePipelineSmartMeterReadProperty ( this IServiceCollection services , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < string > > configure ) { }
191+ public static IServiceCollection AddResiliencePipelineSmartMeterReadProperty < TServiceKey > ( this IServiceCollection services , TServiceKey serviceKey , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
192+ public static IServiceCollection AddResiliencePipelineSmartMeterReconnection ( this IServiceCollection services , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < string > > configure ) { }
193+ public static IServiceCollection AddResiliencePipelineSmartMeterReconnection < TServiceKey > ( this IServiceCollection services , TServiceKey serviceKey , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
194+ public static IServiceCollection AddResiliencePipelineSmartMeterWriteProperty ( this IServiceCollection services , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < string > > configure ) { }
195+ public static IServiceCollection AddResiliencePipelineSmartMeterWriteProperty < TServiceKey > ( this IServiceCollection services , TServiceKey serviceKey , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
196+ public static IServiceCollection AddResiliencePipelineUpdatingElectricEnergyBaseline ( this IServiceCollection services , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < string > > configure ) { }
197+ public static IServiceCollection AddResiliencePipelineUpdatingElectricEnergyBaseline < TServiceKey > ( this IServiceCollection services , TServiceKey serviceKey , Action < ResiliencePipelineBuilder , AddResiliencePipelineContext < SmartMeterDataAggregator . ResiliencePipelineKeyPair < TServiceKey > > > configure ) { }
198+ }
199+
200+ public static class SmartMeterDataAggregatorServiceProviderExtensions {
201+ public static ResiliencePipelineProvider < string > ? GetResiliencePipelineProviderForSmartMeterDataAggregator ( this IServiceProvider serviceProvider , object ? serviceKey ) { }
202+ }
203+
131204 public sealed class WeeklyCumulativeElectricEnergyAggregation : PeriodicCumulativeElectricEnergyAggregation {
132205 public WeeklyCumulativeElectricEnergyAggregation ( bool aggregateNormalDirection , bool aggregateReverseDirection , DayOfWeek firstDayOfWeek ) { }
133206
0 commit comments