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
}
}