//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 loyalsoft. All rights reserved.
// Homepage: http://www.game7000.com/
// Feedback: http://www.game7000.com/
//------------------------------------------------------------
using System;
namespace GameFramework
{
///
/// 数据提供者接口。
///
/// 数据提供者的持有者的类型。
public interface IDataProvider
{
///
/// 读取数据成功事件。
///
event EventHandler ReadDataSuccess;
///
/// 读取数据失败事件。
///
event EventHandler ReadDataFailure;
///
/// 读取数据更新事件。
///
event EventHandler ReadDataUpdate;
///
/// 读取数据时加载依赖资源事件。
///
event EventHandler ReadDataDependencyAsset;
///
/// 读取数据。
///
/// 内容资源名称。
void ReadData(string dataAssetName);
///
/// 读取数据。
///
/// 内容资源名称。
/// 加载数据资源的优先级。
void ReadData(string dataAssetName, int priority);
///
/// 读取数据。
///
/// 内容资源名称。
/// 用户自定义数据。
void ReadData(string dataAssetName, object userData);
///
/// 读取数据。
///
/// 内容资源名称。
/// 加载数据资源的优先级。
/// 用户自定义数据。
void ReadData(string dataAssetName, int priority, object userData);
///
/// 解析内容。
///
/// 要解析的内容字符串。
/// 是否解析内容成功。
bool ParseData(string dataString);
///
/// 解析内容。
///
/// 要解析的内容字符串。
/// 用户自定义数据。
/// 是否解析内容成功。
bool ParseData(string dataString, object userData);
///
/// 解析内容。
///
/// 要解析的内容二进制流。
/// 是否解析内容成功。
bool ParseData(byte[] dataBytes);
///
/// 解析内容。
///
/// 要解析的内容二进制流。
/// 用户自定义数据。
/// 是否解析内容成功。
bool ParseData(byte[] dataBytes, object userData);
///
/// 解析内容。
///
/// 要解析的内容二进制流。
/// 内容二进制流的起始位置。
/// 内容二进制流的长度。
/// 是否解析内容成功。
bool ParseData(byte[] dataBytes, int startIndex, int length);
///
/// 解析内容。
///
/// 要解析的内容二进制流。
/// 内容二进制流的起始位置。
/// 内容二进制流的长度。
/// 用户自定义数据。
/// 是否解析内容成功。
bool ParseData(byte[] dataBytes, int startIndex, int length, object userData);
}
}