//------------------------------------------------------------
// 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;
}
}
}