diff --git a/src/Gemstone.Timeseries/Adapters/AdapterProtocolAttribute.cs b/src/Gemstone.Timeseries/Adapters/AdapterProtocolAttribute.cs
index cb8ea773e..c870b53e5 100644
--- a/src/Gemstone.Timeseries/Adapters/AdapterProtocolAttribute.cs
+++ b/src/Gemstone.Timeseries/Adapters/AdapterProtocolAttribute.cs
@@ -121,15 +121,19 @@ public class AdapterProtocolAttribute : Attribute
public string[] LockedPhasorFields { get; }
///
- /// Creates a new instance of the class.
- ///
- /// Acronym for the adapter protocol.
- /// Name of the adapter protocol.
- /// Type of the adapter protocol.
- /// UI Visibility of the protocol.
- /// Determines if the adapter protocol supports a connection test.
- /// Load order of the adapter protocol.
- /// Applications that support this protocol in the UI.
+ /// Initializes a new instance of the class with the specified parameters.
+ ///
+ /// The unique acronym representing the adapter protocol.
+ /// The display name of the adapter protocol.
+ /// The type of the adapter protocol, indicating its purpose (e.g., or ).
+ /// The visibility of the protocol in the user interface, defined by .
+ /// A value indicating whether the adapter protocol supports connection testing. Defaults to true.
+ /// The load order of the adapter protocol, used to determine initialization sequence. Defaults to 0.
+ /// An array of values specifying the applications that support this protocol in the user interface. Defaults to a predefined set of applications.
+ /// An array of field names that are locked for device configuration. Defaults to an empty array if not specified.
+ /// An array of field names that are locked for measurement configuration. Defaults to an empty array if not specified.
+ /// An array of field names that are locked for phasor configuration. Defaults to an empty array if not specified.
+ /// Thrown when or is null, empty, or consists only of white-space characters.
public AdapterProtocolAttribute(
string acronym,
string name,
@@ -137,10 +141,10 @@ public AdapterProtocolAttribute(
UIVisibility visibility,
bool supportsConnectionTest = true,
int loadOrder = 0,
- Application[] applications = null,
- string[] lockedDeviceFields = null,
- string[] lockedMeasurementFields = null,
- string[] lockedPhasorFields = null)
+ Application[]? applications = null,
+ string[]? lockedDeviceFields = null,
+ string[]? lockedMeasurementFields = null,
+ string[]? lockedPhasorFields = null)
{
ArgumentException.ThrowIfNullOrWhiteSpace(acronym);
ArgumentException.ThrowIfNullOrWhiteSpace(name);
diff --git a/src/Gemstone.Timeseries/BufferBlockMeasurement.cs b/src/Gemstone.Timeseries/BufferBlockMeasurement.cs
index ecaea9033..3ee60e0aa 100644
--- a/src/Gemstone.Timeseries/BufferBlockMeasurement.cs
+++ b/src/Gemstone.Timeseries/BufferBlockMeasurement.cs
@@ -78,5 +78,36 @@ public BufferBlockMeasurement(byte[] buffer, int startIndex, int length)
///
public int Length { get; }
+ ///
+ /// Gets or sets a value indicating whether reception of this buffer block must be acknowledged
+ /// by the subscriber with a ConfirmBufferBlock command.
+ ///
+ ///
+ ///
+ /// Maps to IEEE Std 2664-2024 Table 8 bit 0x01 (REQUIRE CONFIRMATION) on the wire.
+ /// Default value is true, preserving STTP's traditional retransmission semantics where
+ /// the publisher caches each buffer block until acknowledged and retransmits on timeout.
+ ///
+ ///
+ /// When set to false, the buffer block is fire-and-forget: no retransmission cache entry
+ /// is added, the retransmission timer is not (re)started, and the subscriber does not emit a
+ /// confirmation. Useful for high-rate buffer-block streams over reliable transports (TCP)
+ /// where the round-trip acknowledgement overhead is unnecessary.
+ ///
+ ///
+ public bool RequireConfirmation { get; set; } = true;
+
+ ///
+ /// Gets or sets the raw buffer-block flag byte as it appeared on the wire (IEEE Std 2664-2024
+ /// Table 8). On receive, this carries the publisher's full intent (REQUIRE CONFIRMATION,
+ /// COMPRESSED, CACHE INDEX, etc.); on send, this field is unused by the wire codec - the codec
+ /// constructs the byte from and other per-block state.
+ ///
+ ///
+ /// Stored as a raw so this assembly need not take a dependency on the STTP
+ /// flag enum. Cast to BufferBlockFlags at the call site if structured inspection is needed.
+ ///
+ public byte Flags { get; set; }
+
#endregion
}