Merge ph-T6 (pluggable historian)

Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
Joseph Doherty
2026-10-09 12:59:51 -04:00
10 changed files with 1065 additions and 11 deletions
@@ -0,0 +1,15 @@
using ZB.MOM.WW.OtOpcUa.Core.Abstractions;
namespace ZB.MOM.WW.OtOpcUa.Runtime.Historian;
/// <summary>
/// DI carrier for the optional <see cref="IHistorianDataUpdater"/> the selected historian backend supplies.
/// A holder (rather than a nullable registration) lets "this backend cannot modify history" be registered
/// explicitly as <see cref="None"/>, so consumers resolve one type and branch on <see cref="Updater"/>.
/// </summary>
/// <param name="Updater">The backend's updater, or <c>null</c> when HistoryUpdate is unsupported.</param>
public sealed record HistorianUpdaterHolder(IHistorianDataUpdater? Updater)
{
/// <summary>No updater: every HistoryUpdate is reported unsupported.</summary>
public static readonly HistorianUpdaterHolder None = new((IHistorianDataUpdater?)null);
}