//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 loyalsoft. All rights reserved.
// Homepage: http://www.game7000.com/
// Feedback: http://www.game7000.com/
//------------------------------------------------------------
using GameFramework.Resource;
using System;
using System.Collections.Generic;
namespace GameFramework.DataTable
{
///
/// 数据表管理器接口。
///
public interface IDataTableManager
{
///
/// 获取数据表数量。
///
int Count
{
get;
}
///
/// 获取缓冲二进制流的大小。
///
int CachedBytesSize
{
get;
}
///
/// 设置资源管理器。
///
/// 资源管理器。
void SetResourceManager(IResourceManager resourceManager);
///
/// 设置数据表数据提供者辅助器。
///
/// 数据表数据提供者辅助器。
void SetDataProviderHelper(IDataProviderHelper dataProviderHelper);
///
/// 设置数据表辅助器。
///
/// 数据表辅助器。
void SetDataTableHelper(IDataTableHelper dataTableHelper);
///
/// 确保二进制流缓存分配足够大小的内存并缓存。
///
/// 要确保二进制流缓存分配内存的大小。
void EnsureCachedBytesSize(int ensureSize);
///
/// 释放缓存的二进制流。
///
void FreeCachedBytes();
///
/// 是否存在数据表。
///
/// 数据表行的类型。
/// 是否存在数据表。
bool HasDataTable() where T : IDataRow;
///
/// 是否存在数据表。
///
/// 数据表行的类型。
/// 是否存在数据表。
bool HasDataTable(Type dataRowType);
///
/// 是否存在数据表。
///
/// 数据表行的类型。
/// 数据表名称。
/// 是否存在数据表。
bool HasDataTable(string name) where T : IDataRow;
///
/// 是否存在数据表。
///
/// 数据表行的类型。
/// 数据表名称。
/// 是否存在数据表。
bool HasDataTable(Type dataRowType, string name);
///
/// 获取数据表。
///
/// 数据表行的类型。
/// 要获取的数据表。
IDataTable GetDataTable() where T : IDataRow;
///
/// 获取数据表。
///
/// 数据表行的类型。
/// 要获取的数据表。
DataTableBase GetDataTable(Type dataRowType);
///
/// 获取数据表。
///
/// 数据表行的类型。
/// 数据表名称。
/// 要获取的数据表。
IDataTable GetDataTable(string name) where T : IDataRow;
///
/// 获取数据表。
///
/// 数据表行的类型。
/// 数据表名称。
/// 要获取的数据表。
DataTableBase GetDataTable(Type dataRowType, string name);
///
/// 获取所有数据表。
///
/// 所有数据表。
DataTableBase[] GetAllDataTables();
///
/// 获取所有数据表。
///
/// 所有数据表。
void GetAllDataTables(List results);
///
/// 创建数据表。
///
/// 数据表行的类型。
/// 要创建的数据表。
IDataTable CreateDataTable() where T : class, IDataRow, new();
///
/// 创建数据表。
///
/// 数据表行的类型。
/// 要创建的数据表。
DataTableBase CreateDataTable(Type dataRowType);
///
/// 创建数据表。
///
/// 数据表行的类型。
/// 数据表名称。
/// 要创建的数据表。
IDataTable CreateDataTable(string name) where T : class, IDataRow, new();
///
/// 创建数据表。
///
/// 数据表行的类型。
/// 数据表名称。
/// 要创建的数据表。
DataTableBase CreateDataTable(Type dataRowType, string name);
///
/// 销毁数据表。
///
/// 数据表行的类型。
/// 是否销毁数据表成功。
bool DestroyDataTable() where T : IDataRow;
///
/// 销毁数据表。
///
/// 数据表行的类型。
/// 是否销毁数据表成功。
bool DestroyDataTable(Type dataRowType);
///
/// 销毁数据表。
///
/// 数据表行的类型。
/// 数据表名称。
/// 是否销毁数据表成功。
bool DestroyDataTable(string name) where T : IDataRow;
///
/// 销毁数据表。
///
/// 数据表行的类型。
/// 数据表名称。
/// 是否销毁数据表成功。
bool DestroyDataTable(Type dataRowType, string name);
///
/// 销毁数据表。
///
/// 数据表行的类型。
/// 要销毁的数据表。
/// 是否销毁数据表成功。
bool DestroyDataTable(IDataTable dataTable) where T : IDataRow;
///
/// 销毁数据表。
///
/// 要销毁的数据表。
/// 是否销毁数据表成功。
bool DestroyDataTable(DataTableBase dataTable);
}
}