feat(grpc): add RunWriteOnSession seam for write-reuse spike
This commit is contained in:
@@ -47,6 +47,24 @@ internal sealed class HistorianGrpcHistoricalWriteOrchestrator
|
|||||||
HistorianGrpcHandshake.Session session = HistorianGrpcHandshake.OpenSession(
|
HistorianGrpcHandshake.Session session = HistorianGrpcHandshake.OpenSession(
|
||||||
connection, _options, cancellationToken,
|
connection, _options, cancellationToken,
|
||||||
connectionMode: HistorianWcfAuthChainHelper.NativeIntegratedWriteEnabledConnectionMode);
|
connectionMode: HistorianWcfAuthChainHelper.NativeIntegratedWriteEnabledConnectionMode);
|
||||||
|
return RunWriteOnSession(connection, session, tag, values, cancellationToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spike/Phase-1 seam (A1): run the historical write against an EXTERNALLY-supplied, already-
|
||||||
|
// authenticated write-enabled (0x401) connection + session — NO Create()/handshake here. Run()
|
||||||
|
// delegates so the per-call path and the reuse path share one write implementation (DRY).
|
||||||
|
internal bool RunWriteOnSession(
|
||||||
|
HistorianGrpcConnection connection,
|
||||||
|
HistorianGrpcHandshake.Session session,
|
||||||
|
string tag,
|
||||||
|
IReadOnlyList<HistorianHistoricalValue> values,
|
||||||
|
CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
if (values.Count == 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
string handle = session.StringHandle;
|
string handle = session.StringHandle;
|
||||||
DateTime Deadline() => DateTime.UtcNow.Add(_options.RequestTimeout);
|
DateTime Deadline() => DateTime.UtcNow.Add(_options.RequestTimeout);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user