TaskInfo.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using System.Runtime.InteropServices;
  8. namespace GameFramework
  9. {
  10. /// <summary>
  11. /// 任务信息。
  12. /// </summary>
  13. [StructLayout(LayoutKind.Auto)]
  14. public struct TaskInfo
  15. {
  16. private readonly bool m_IsValid;
  17. private readonly int m_SerialId;
  18. private readonly string m_Tag;
  19. private readonly int m_Priority;
  20. private readonly object m_UserData;
  21. private readonly TaskStatus m_Status;
  22. private readonly string m_Description;
  23. /// <summary>
  24. /// 初始化任务信息的新实例。
  25. /// </summary>
  26. /// <param name="serialId">任务的序列编号。</param>
  27. /// <param name="tag">任务的标签。</param>
  28. /// <param name="priority">任务的优先级。</param>
  29. /// <param name="userData">任务的用户自定义数据。</param>
  30. /// <param name="status">任务状态。</param>
  31. /// <param name="description">任务描述。</param>
  32. public TaskInfo(int serialId, string tag, int priority, object userData, TaskStatus status, string description)
  33. {
  34. m_IsValid = true;
  35. m_SerialId = serialId;
  36. m_Tag = tag;
  37. m_Priority = priority;
  38. m_UserData = userData;
  39. m_Status = status;
  40. m_Description = description;
  41. }
  42. /// <summary>
  43. /// 获取任务信息是否有效。
  44. /// </summary>
  45. public bool IsValid
  46. {
  47. get
  48. {
  49. return m_IsValid;
  50. }
  51. }
  52. /// <summary>
  53. /// 获取任务的序列编号。
  54. /// </summary>
  55. public int SerialId
  56. {
  57. get
  58. {
  59. if (!m_IsValid)
  60. {
  61. throw new GameFrameworkException("Data is invalid.");
  62. }
  63. return m_SerialId;
  64. }
  65. }
  66. /// <summary>
  67. /// 获取任务的标签。
  68. /// </summary>
  69. public string Tag
  70. {
  71. get
  72. {
  73. if (!m_IsValid)
  74. {
  75. throw new GameFrameworkException("Data is invalid.");
  76. }
  77. return m_Tag;
  78. }
  79. }
  80. /// <summary>
  81. /// 获取任务的优先级。
  82. /// </summary>
  83. public int Priority
  84. {
  85. get
  86. {
  87. if (!m_IsValid)
  88. {
  89. throw new GameFrameworkException("Data is invalid.");
  90. }
  91. return m_Priority;
  92. }
  93. }
  94. /// <summary>
  95. /// 获取任务的用户自定义数据。
  96. /// </summary>
  97. public object UserData
  98. {
  99. get
  100. {
  101. if (!m_IsValid)
  102. {
  103. throw new GameFrameworkException("Data is invalid.");
  104. }
  105. return m_UserData;
  106. }
  107. }
  108. /// <summary>
  109. /// 获取任务状态。
  110. /// </summary>
  111. public TaskStatus Status
  112. {
  113. get
  114. {
  115. if (!m_IsValid)
  116. {
  117. throw new GameFrameworkException("Data is invalid.");
  118. }
  119. return m_Status;
  120. }
  121. }
  122. /// <summary>
  123. /// 获取任务描述。
  124. /// </summary>
  125. public string Description
  126. {
  127. get
  128. {
  129. if (!m_IsValid)
  130. {
  131. throw new GameFrameworkException("Data is invalid.");
  132. }
  133. return m_Description;
  134. }
  135. }
  136. }
  137. }