SyncRequest.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. namespace WatsonTcp
  2. {
  3. using System;
  4. using System.Collections.Generic;
  5. /// <summary>
  6. /// Request that demands a response within a specific timeout.
  7. /// </summary>
  8. public class SyncRequest
  9. {
  10. #region Public-Members
  11. /// <summary>
  12. /// Client metadata.
  13. /// </summary>
  14. public ClientMetadata Client { get; }
  15. /// <summary>
  16. /// The time at which the request expires.
  17. /// </summary>
  18. public DateTime ExpirationUtc { get; }
  19. /// <summary>
  20. /// Metadata attached to the request.
  21. /// </summary>
  22. public Dictionary<string, object> Metadata { get; }
  23. /// <summary>
  24. /// Request data.
  25. /// </summary>
  26. public byte[] Data { get; }
  27. /// <summary>
  28. /// Conversation GUID.
  29. /// </summary>
  30. public Guid ConversationGuid { get; } = Guid.NewGuid();
  31. #endregion
  32. #region Private-Members
  33. #endregion
  34. #region Constructors-and-Factories
  35. /// <summary>
  36. /// Instantiate.
  37. /// </summary>
  38. /// <param name="client">Client metadata.</param>
  39. /// <param name="convGuid">Conversation GUID.</param>
  40. /// <param name="expirationUtc">Expiration UTC timestamp.</param>
  41. /// <param name="metadata">Metadata.</param>
  42. /// <param name="data">Data.</param>
  43. public SyncRequest(ClientMetadata client, Guid convGuid, DateTime expirationUtc, Dictionary<string, object> metadata, byte[] data)
  44. {
  45. Client = client;
  46. ConversationGuid = convGuid;
  47. ExpirationUtc = expirationUtc;
  48. Metadata = metadata;
  49. if (data != null)
  50. {
  51. Data = new byte[data.Length];
  52. Buffer.BlockCopy(data, 0, Data, 0, data.Length);
  53. }
  54. }
  55. #endregion
  56. #region Public-Methods
  57. #endregion
  58. #region Private-Methods
  59. #endregion
  60. }
  61. }