LastWillAndTestamentBuilder
The LastWillAndTestamentBuilder
class provides a fluent API for constructing instances of LastWillAndTestament
. It allows you to set various properties for creating a Last Will and Testament message, such as the topic, payload, Quality of Service (QoS), and additional metadata.
Constructor
LastWillAndTestamentBuilder()
Initializes a new instance of the LastWillAndTestamentBuilder
class.
LastWillAndTestamentBuilder();
Example:
var builder = new LastWillAndTestamentBuilder();
Methods
WithTopic(string topic)
Sets the topic for the Last Will and Testament message.
LastWillAndTestamentBuilder WithTopic(string topic);
Parameters:
topic
(string): The topic name.
Example:
builder.WithTopic("client/disconnect");
WithPayload(byte[] payload)
Sets the payload for the Last Will and Testament message as a byte array.
LastWillAndTestamentBuilder WithPayload(byte[] payload);
Parameters:
payload
(byte[]): The payload in bytes.
Example:
builder.WithPayload(Encoding.UTF8.GetBytes("Disconnected unexpectedly"));
WithPayload(string payload)
Sets the payload for the Last Will and Testament message as a string.
LastWillAndTestamentBuilder WithPayload(string payload);
Parameters:
payload
(string): The payload as a string.
Example:
builder.WithPayload("Disconnected unexpectedly");
WithQualityOfServiceLevel(QualityOfService qos)
Sets the Quality of Service (QoS) level for the Last Will and Testament message.
LastWillAndTestamentBuilder WithQualityOfServiceLevel(QualityOfService qos);
Parameters:
qos
(QualityOfService): The QoS level.
Example:
builder.WithQualityOfServiceLevel(QualityOfService.AtLeastOnce);
WithRetain(bool retain)
Sets the retain flag for the Last Will and Testament message.
LastWillAndTestamentBuilder WithRetain(bool retain);
Parameters:
retain
(bool): Whether the message should be retained by the broker.
Example:
builder.WithRetain(true);
WithWillDelayInterval(long willDelayInterval)
Sets the delay before the Last Will and Testament message is sent.
LastWillAndTestamentBuilder WithWillDelayInterval(long willDelayInterval);
Parameters:
willDelayInterval
(long): The delay in seconds.
Example:
builder.WithWillDelayInterval(60); // Delay of 60 seconds
WithPayloadFormatIndicator(MQTT5PayloadFormatIndicator payloadFormatIndicator)
Sets the payload format indicator.
LastWillAndTestamentBuilder WithPayloadFormatIndicator(MQTT5PayloadFormatIndicator payloadFormatIndicator);
Parameters:
payloadFormatIndicator
(MQTT5PayloadFormatIndicator): The payload format indicator.
Example:
builder.WithPayloadFormatIndicator(MQTT5PayloadFormatIndicator.Text);
WithMessageExpiryInterval(long messageExpiryInterval)
Sets the expiry interval for the Last Will and Testament message.
LastWillAndTestamentBuilder WithMessageExpiryInterval(long messageExpiryInterval);
Parameters:
messageExpiryInterval
(long): The expiry interval in seconds.
Example:
builder.WithMessageExpiryInterval(3600); // 1 hour expiry
WithContentType(string contentType)
Sets the content type for the Last Will and Testament message.
LastWillAndTestamentBuilder WithContentType(string contentType);
Parameters:
contentType
(string): The content type.
Example:
builder.WithContentType("text/plain");
WithResponseTopic(string responseTopic)
Sets the response topic for the Last Will and Testament message.
LastWillAndTestamentBuilder WithResponseTopic(string responseTopic);
Parameters:
responseTopic
(string): The response topic.
Example:
builder.WithResponseTopic("response/topic");
WithCorrelationData(byte[] correlationData)
Sets the correlation data for the Last Will and Testament message.
LastWillAndTestamentBuilder WithCorrelationData(byte[] correlationData);
Parameters:
correlationData
(byte[]): The correlation data.
Example:
builder.WithCorrelationData(Encoding.UTF8.GetBytes("12345"));