//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 Jiang Yin. All rights reserved. // Homepage: https://gameframework.cn/ // Feedback: mailto:ellan@gameframework.cn //------------------------------------------------------------ using GameFramework.Resource; namespace GameFramework { /// /// 数据提供者创建器。 /// public static class DataProviderCreator { /// /// 获取缓冲二进制流的大小。 /// /// 数据提供者的持有者的类型。 /// 缓冲二进制流的大小。 public static int GetCachedBytesSize() { return DataProvider.CachedBytesSize; } /// /// 确保二进制流缓存分配足够大小的内存并缓存。 /// /// 数据提供者的持有者的类型。 /// 要确保二进制流缓存分配内存的大小。 public static void EnsureCachedBytesSize(int ensureSize) { DataProvider.EnsureCachedBytesSize(ensureSize); } /// /// 释放缓存的二进制流。 /// /// 数据提供者的持有者的类型。 public static void FreeCachedBytes() { DataProvider.FreeCachedBytes(); } /// /// 创建数据提供者。 /// /// 数据提供者的持有者的类型。 /// 数据提供者的持有者。 /// 资源管理器。 /// 数据提供者辅助器。 /// 创建的数据提供者。 public static IDataProvider Create(T owner, IResourceManager resourceManager, IDataProviderHelper dataProviderHelper) { if (owner == null) { throw new GameFrameworkException("Owner is invalid."); } if (resourceManager == null) { throw new GameFrameworkException("Resource manager is invalid."); } if (dataProviderHelper == null) { throw new GameFrameworkException("Data provider helper is invalid."); } DataProvider dataProvider = new DataProvider(owner); dataProvider.SetResourceManager(resourceManager); dataProvider.SetDataProviderHelper(dataProviderHelper); return dataProvider; } } }