fix(historian-gateway): seam maxEvents XML doc + driver Platforms + ValueTask in fake

Addresses Task 1 code-review: document that ReadEventsAsync.maxEvents is enforced
client-side (no server cap in the wire contract); add Platforms=AnyCPU;x64 to match
sibling drivers; use ValueTask.CompletedTask in FakeHistorianGatewayClient.

Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
This commit is contained in:
Joseph Doherty
2026-06-26 16:35:08 -04:00
parent a96e85f0e4
commit c51ca2276b
3 changed files with 12 additions and 1 deletions
@@ -35,6 +35,16 @@ public interface IHistorianGatewayClient : IAsyncDisposable
CancellationToken ct);
/// <summary>Streams historian events over a window, optionally filtered to a single source name.</summary>
/// <param name="sourceName">Optional source-name filter; <c>null</c> returns events from all sources.</param>
/// <param name="startUtc">Inclusive start of the time window (UTC).</param>
/// <param name="endUtc">Exclusive end of the time window (UTC).</param>
/// <param name="maxEvents">
/// Caps the number of events returned. The gateway wire contract (<c>ReadEventsRequest</c>) has
/// no per-call server cap, so this limit is enforced client-side by early stream termination:
/// <c>0</c> or negative means no client-side limit (the gateway may still apply its configured
/// <c>RuntimeDb:EventReadMaxRows</c>); a positive value stops draining after that many events.
/// </param>
/// <param name="ct">Cancellation token.</param>
IAsyncEnumerable<HistorianEvent> ReadEventsAsync(
string? sourceName,
DateTime startUtc,
@@ -4,6 +4,7 @@
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<Platforms>AnyCPU;x64</Platforms>
<RootNamespace>ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway</RootNamespace>
</PropertyGroup>