namespace WatsonTcp { using System; using System.Collections.Generic; /// /// Request that demands a response within a specific timeout. /// public class SyncRequest { #region Public-Members /// /// Client metadata. /// public ClientMetadata Client { get; } /// /// The time at which the request expires. /// public DateTime ExpirationUtc { get; } /// /// Metadata attached to the request. /// public Dictionary Metadata { get; } /// /// Request data. /// public byte[] Data { get; } /// /// Conversation GUID. /// public Guid ConversationGuid { get; } = Guid.NewGuid(); #endregion #region Private-Members #endregion #region Constructors-and-Factories /// /// Instantiate. /// /// Client metadata. /// Conversation GUID. /// Expiration UTC timestamp. /// Metadata. /// Data. public SyncRequest(ClientMetadata client, Guid convGuid, DateTime expirationUtc, Dictionary metadata, byte[] data) { Client = client; ConversationGuid = convGuid; ExpirationUtc = expirationUtc; Metadata = metadata; if (data != null) { Data = new byte[data.Length]; Buffer.BlockCopy(data, 0, Data, 0, data.Length); } } #endregion #region Public-Methods #endregion #region Private-Methods #endregion } }