docs: backfill XML documentation across 756 files
v2-ci / build (push) Failing after 1m43s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped

Adds <summary>, <param>, <typeparam>, and <inheritdoc/> tags to public
members surfaced by commentchecker — resolves 5,847 of 5,869 issues
(99.6%) across three /fixdocs passes.
This commit is contained in:
Joseph Doherty
2026-05-28 08:10:17 -04:00
parent f9fc7dd2e1
commit 64e3fbe035
756 changed files with 9876 additions and 96 deletions
@@ -29,6 +29,10 @@ internal static class FocasWireProtocol
private static readonly byte[] Magic = [0xa0, 0xa0, 0xa0, 0xa0];
/// <summary>Assemble a full PDU (10-byte header + body) for transmission.</summary>
/// <param name="type">The PDU type byte.</param>
/// <param name="direction">The direction byte (request or response).</param>
/// <param name="body">The PDU body bytes.</param>
/// <returns>The complete PDU bytes including header and body.</returns>
public static byte[] BuildPdu(byte type, byte direction, ReadOnlySpan<byte> body)
{
if (body.Length > ushort.MaxValue)
@@ -49,6 +53,8 @@ internal static class FocasWireProtocol
/// opens two TCP sockets in sequence and each sends its own initiate PDU carrying its
/// index.
/// </summary>
/// <param name="socketIndex">The socket index (1 or 2).</param>
/// <returns>The initiate body bytes.</returns>
public static byte[] BuildInitiateBody(ushort socketIndex)
{
var body = new byte[2];
@@ -57,6 +63,8 @@ internal static class FocasWireProtocol
}
/// <summary>Assemble a type-<c>0x21</c> body carrying one or more request blocks.</summary>
/// <param name="blocks">The request blocks to assemble.</param>
/// <returns>The assembled body bytes.</returns>
public static byte[] BuildRequestBody(IReadOnlyList<RequestBlock> blocks)
{
if (blocks.Count > ushort.MaxValue)
@@ -79,6 +87,9 @@ internal static class FocasWireProtocol
}
/// <summary>Async read of one full PDU off a stream. Throws <see cref="FocasWireException"/> on invalid magic / version / truncation.</summary>
/// <param name="stream">The network stream to read from.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>The read PDU.</returns>
public static async Task<Pdu> ReadPduAsync(NetworkStream stream, CancellationToken cancellationToken)
{
var header = new byte[10];
@@ -100,6 +111,8 @@ internal static class FocasWireProtocol
}
/// <summary>Synchronous counterpart to <see cref="ReadPduAsync"/> — used by <see cref="FocasWireClient"/>'s sync dispose.</summary>
/// <param name="stream">The network stream to read from.</param>
/// <returns>The read PDU.</returns>
public static Pdu ReadPdu(NetworkStream stream)
{
var header = new byte[10];
@@ -149,6 +162,8 @@ internal static class FocasWireProtocol
/// block carries the command ID, the FOCAS <c>EW_*</c> return code, and the payload
/// bytes.
/// </summary>
/// <param name="body">The response body bytes.</param>
/// <returns>The parsed response blocks.</returns>
public static IReadOnlyList<ResponseBlock> ParseResponseBlocks(ReadOnlySpan<byte> body)
{
if (body.Length < 2)
@@ -181,6 +196,8 @@ internal static class FocasWireProtocol
}
/// <summary>Read an ASCII string out of a payload span, stopping at the first NUL and trimming trailing spaces.</summary>
/// <param name="bytes">The bytes to decode.</param>
/// <returns>The decoded ASCII string.</returns>
public static string ReadAscii(ReadOnlySpan<byte> bytes)
{
var end = bytes.IndexOf((byte)0);
@@ -193,6 +210,8 @@ internal static class FocasWireProtocol
/// (spindle) slot. Trailing spaces and NULs are stripped so <c>"X "</c> becomes
/// <c>"X"</c>.
/// </summary>
/// <param name="bytes">The bytes to decode.</param>
/// <returns>The decoded name record.</returns>
public static string ReadNameRecord(ReadOnlySpan<byte> bytes)
{
if (bytes.Length < 2) return string.Empty;