IDataTableManager.cs 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  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 GameFramework.Resource;
  8. using System;
  9. using System.Collections.Generic;
  10. namespace GameFramework.DataTable
  11. {
  12. /// <summary>
  13. /// 数据表管理器接口。
  14. /// </summary>
  15. public interface IDataTableManager
  16. {
  17. /// <summary>
  18. /// 获取数据表数量。
  19. /// </summary>
  20. int Count
  21. {
  22. get;
  23. }
  24. /// <summary>
  25. /// 获取缓冲二进制流的大小。
  26. /// </summary>
  27. int CachedBytesSize
  28. {
  29. get;
  30. }
  31. /// <summary>
  32. /// 设置资源管理器。
  33. /// </summary>
  34. /// <param name="resourceManager">资源管理器。</param>
  35. void SetResourceManager(IResourceManager resourceManager);
  36. /// <summary>
  37. /// 设置数据表数据提供者辅助器。
  38. /// </summary>
  39. /// <param name="dataProviderHelper">数据表数据提供者辅助器。</param>
  40. void SetDataProviderHelper(IDataProviderHelper<DataTableBase> dataProviderHelper);
  41. /// <summary>
  42. /// 设置数据表辅助器。
  43. /// </summary>
  44. /// <param name="dataTableHelper">数据表辅助器。</param>
  45. void SetDataTableHelper(IDataTableHelper dataTableHelper);
  46. /// <summary>
  47. /// 确保二进制流缓存分配足够大小的内存并缓存。
  48. /// </summary>
  49. /// <param name="ensureSize">要确保二进制流缓存分配内存的大小。</param>
  50. void EnsureCachedBytesSize(int ensureSize);
  51. /// <summary>
  52. /// 释放缓存的二进制流。
  53. /// </summary>
  54. void FreeCachedBytes();
  55. /// <summary>
  56. /// 是否存在数据表。
  57. /// </summary>
  58. /// <typeparam name="T">数据表行的类型。</typeparam>
  59. /// <returns>是否存在数据表。</returns>
  60. bool HasDataTable<T>() where T : IDataRow;
  61. /// <summary>
  62. /// 是否存在数据表。
  63. /// </summary>
  64. /// <param name="dataRowType">数据表行的类型。</param>
  65. /// <returns>是否存在数据表。</returns>
  66. bool HasDataTable(Type dataRowType);
  67. /// <summary>
  68. /// 是否存在数据表。
  69. /// </summary>
  70. /// <typeparam name="T">数据表行的类型。</typeparam>
  71. /// <param name="name">数据表名称。</param>
  72. /// <returns>是否存在数据表。</returns>
  73. bool HasDataTable<T>(string name) where T : IDataRow;
  74. /// <summary>
  75. /// 是否存在数据表。
  76. /// </summary>
  77. /// <param name="dataRowType">数据表行的类型。</param>
  78. /// <param name="name">数据表名称。</param>
  79. /// <returns>是否存在数据表。</returns>
  80. bool HasDataTable(Type dataRowType, string name);
  81. /// <summary>
  82. /// 获取数据表。
  83. /// </summary>
  84. /// <typeparam name="T">数据表行的类型。</typeparam>
  85. /// <returns>要获取的数据表。</returns>
  86. IDataTable<T> GetDataTable<T>() where T : IDataRow;
  87. /// <summary>
  88. /// 获取数据表。
  89. /// </summary>
  90. /// <param name="dataRowType">数据表行的类型。</param>
  91. /// <returns>要获取的数据表。</returns>
  92. DataTableBase GetDataTable(Type dataRowType);
  93. /// <summary>
  94. /// 获取数据表。
  95. /// </summary>
  96. /// <typeparam name="T">数据表行的类型。</typeparam>
  97. /// <param name="name">数据表名称。</param>
  98. /// <returns>要获取的数据表。</returns>
  99. IDataTable<T> GetDataTable<T>(string name) where T : IDataRow;
  100. /// <summary>
  101. /// 获取数据表。
  102. /// </summary>
  103. /// <param name="dataRowType">数据表行的类型。</param>
  104. /// <param name="name">数据表名称。</param>
  105. /// <returns>要获取的数据表。</returns>
  106. DataTableBase GetDataTable(Type dataRowType, string name);
  107. /// <summary>
  108. /// 获取所有数据表。
  109. /// </summary>
  110. /// <returns>所有数据表。</returns>
  111. DataTableBase[] GetAllDataTables();
  112. /// <summary>
  113. /// 获取所有数据表。
  114. /// </summary>
  115. /// <param name="results">所有数据表。</param>
  116. void GetAllDataTables(List<DataTableBase> results);
  117. /// <summary>
  118. /// 创建数据表。
  119. /// </summary>
  120. /// <typeparam name="T">数据表行的类型。</typeparam>
  121. /// <returns>要创建的数据表。</returns>
  122. IDataTable<T> CreateDataTable<T>() where T : class, IDataRow, new();
  123. /// <summary>
  124. /// 创建数据表。
  125. /// </summary>
  126. /// <param name="dataRowType">数据表行的类型。</param>
  127. /// <returns>要创建的数据表。</returns>
  128. DataTableBase CreateDataTable(Type dataRowType);
  129. /// <summary>
  130. /// 创建数据表。
  131. /// </summary>
  132. /// <typeparam name="T">数据表行的类型。</typeparam>
  133. /// <param name="name">数据表名称。</param>
  134. /// <returns>要创建的数据表。</returns>
  135. IDataTable<T> CreateDataTable<T>(string name) where T : class, IDataRow, new();
  136. /// <summary>
  137. /// 创建数据表。
  138. /// </summary>
  139. /// <param name="dataRowType">数据表行的类型。</param>
  140. /// <param name="name">数据表名称。</param>
  141. /// <returns>要创建的数据表。</returns>
  142. DataTableBase CreateDataTable(Type dataRowType, string name);
  143. /// <summary>
  144. /// 销毁数据表。
  145. /// </summary>
  146. /// <typeparam name="T">数据表行的类型。</typeparam>
  147. /// <returns>是否销毁数据表成功。</returns>
  148. bool DestroyDataTable<T>() where T : IDataRow;
  149. /// <summary>
  150. /// 销毁数据表。
  151. /// </summary>
  152. /// <param name="dataRowType">数据表行的类型。</param>
  153. /// <returns>是否销毁数据表成功。</returns>
  154. bool DestroyDataTable(Type dataRowType);
  155. /// <summary>
  156. /// 销毁数据表。
  157. /// </summary>
  158. /// <typeparam name="T">数据表行的类型。</typeparam>
  159. /// <param name="name">数据表名称。</param>
  160. /// <returns>是否销毁数据表成功。</returns>
  161. bool DestroyDataTable<T>(string name) where T : IDataRow;
  162. /// <summary>
  163. /// 销毁数据表。
  164. /// </summary>
  165. /// <param name="dataRowType">数据表行的类型。</param>
  166. /// <param name="name">数据表名称。</param>
  167. /// <returns>是否销毁数据表成功。</returns>
  168. bool DestroyDataTable(Type dataRowType, string name);
  169. /// <summary>
  170. /// 销毁数据表。
  171. /// </summary>
  172. /// <typeparam name="T">数据表行的类型。</typeparam>
  173. /// <param name="dataTable">要销毁的数据表。</param>
  174. /// <returns>是否销毁数据表成功。</returns>
  175. bool DestroyDataTable<T>(IDataTable<T> dataTable) where T : IDataRow;
  176. /// <summary>
  177. /// 销毁数据表。
  178. /// </summary>
  179. /// <param name="dataTable">要销毁的数据表。</param>
  180. /// <returns>是否销毁数据表成功。</returns>
  181. bool DestroyDataTable(DataTableBase dataTable);
  182. }
  183. }