IDataProvider.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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;
  8. namespace GameFramework
  9. {
  10. /// <summary>
  11. /// 数据提供者接口。
  12. /// </summary>
  13. /// <typeparam name="T">数据提供者的持有者的类型。</typeparam>
  14. public interface IDataProvider<T>
  15. {
  16. /// <summary>
  17. /// 读取数据成功事件。
  18. /// </summary>
  19. event EventHandler<ReadDataSuccessEventArgs> ReadDataSuccess;
  20. /// <summary>
  21. /// 读取数据失败事件。
  22. /// </summary>
  23. event EventHandler<ReadDataFailureEventArgs> ReadDataFailure;
  24. /// <summary>
  25. /// 读取数据更新事件。
  26. /// </summary>
  27. event EventHandler<ReadDataUpdateEventArgs> ReadDataUpdate;
  28. /// <summary>
  29. /// 读取数据时加载依赖资源事件。
  30. /// </summary>
  31. event EventHandler<ReadDataDependencyAssetEventArgs> ReadDataDependencyAsset;
  32. /// <summary>
  33. /// 读取数据。
  34. /// </summary>
  35. /// <param name="dataAssetName">内容资源名称。</param>
  36. void ReadData(string dataAssetName);
  37. /// <summary>
  38. /// 读取数据。
  39. /// </summary>
  40. /// <param name="dataAssetName">内容资源名称。</param>
  41. /// <param name="priority">加载数据资源的优先级。</param>
  42. void ReadData(string dataAssetName, int priority);
  43. /// <summary>
  44. /// 读取数据。
  45. /// </summary>
  46. /// <param name="dataAssetName">内容资源名称。</param>
  47. /// <param name="userData">用户自定义数据。</param>
  48. void ReadData(string dataAssetName, object userData);
  49. /// <summary>
  50. /// 读取数据。
  51. /// </summary>
  52. /// <param name="dataAssetName">内容资源名称。</param>
  53. /// <param name="priority">加载数据资源的优先级。</param>
  54. /// <param name="userData">用户自定义数据。</param>
  55. void ReadData(string dataAssetName, int priority, object userData);
  56. /// <summary>
  57. /// 解析内容。
  58. /// </summary>
  59. /// <param name="dataString">要解析的内容字符串。</param>
  60. /// <returns>是否解析内容成功。</returns>
  61. bool ParseData(string dataString);
  62. /// <summary>
  63. /// 解析内容。
  64. /// </summary>
  65. /// <param name="dataString">要解析的内容字符串。</param>
  66. /// <param name="userData">用户自定义数据。</param>
  67. /// <returns>是否解析内容成功。</returns>
  68. bool ParseData(string dataString, object userData);
  69. /// <summary>
  70. /// 解析内容。
  71. /// </summary>
  72. /// <param name="dataBytes">要解析的内容二进制流。</param>
  73. /// <returns>是否解析内容成功。</returns>
  74. bool ParseData(byte[] dataBytes);
  75. /// <summary>
  76. /// 解析内容。
  77. /// </summary>
  78. /// <param name="dataBytes">要解析的内容二进制流。</param>
  79. /// <param name="userData">用户自定义数据。</param>
  80. /// <returns>是否解析内容成功。</returns>
  81. bool ParseData(byte[] dataBytes, object userData);
  82. /// <summary>
  83. /// 解析内容。
  84. /// </summary>
  85. /// <param name="dataBytes">要解析的内容二进制流。</param>
  86. /// <param name="startIndex">内容二进制流的起始位置。</param>
  87. /// <param name="length">内容二进制流的长度。</param>
  88. /// <returns>是否解析内容成功。</returns>
  89. bool ParseData(byte[] dataBytes, int startIndex, int length);
  90. /// <summary>
  91. /// 解析内容。
  92. /// </summary>
  93. /// <param name="dataBytes">要解析的内容二进制流。</param>
  94. /// <param name="startIndex">内容二进制流的起始位置。</param>
  95. /// <param name="length">内容二进制流的长度。</param>
  96. /// <param name="userData">用户自定义数据。</param>
  97. /// <returns>是否解析内容成功。</returns>
  98. bool ParseData(byte[] dataBytes, int startIndex, int length, object userData);
  99. }
  100. }