//------------------------------------------------------------------------------
// 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有
// 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权
// CSDN博客:https://blog.csdn.net/qq_40374647
// 哔哩哔哩视频:https://space.bilibili.com/94253567
// Gitee源代码仓库:https://gitee.com/RRQM_Home
// Github源代码仓库:https://github.com/RRQM
// API首页:https://www.yuque.com/rrqm/touchsocket/index
// 交流QQ群:234762506
// 感谢您的下载和使用
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
using System.Threading.Tasks;
using TouchSocket.Core;
namespace TouchSocket.Rpc.TouchRpc
{
///
/// ITouchRpcPlugin
///
public partial interface ITouchRpcPlugin : IPlugin
{
///
/// 当文件传输结束之后。并不意味着完成传输,请通过属性值进行判断。
///
///
///
[AsyncRaiser]
void OnFileTransfered(ITouchRpc client, FileTransferStatusEventArgs e);
///
/// 当文件传输结束之后。并不意味着完成传输,请通过属性值进行判断。
///
///
///
///
Task OnFileTransferedAsync(ITouchRpc client, FileTransferStatusEventArgs e);
///
/// 在文件传输即将进行时触发。
///
///
///
[AsyncRaiser]
void OnFileTransfering(ITouchRpc client, FileOperationEventArgs e);
///
/// 在文件传输即将进行时触发。
///
///
///
///
Task OnFileTransferingAsync(ITouchRpc client, FileOperationEventArgs e);
///
/// 在完成握手连接时。
///
///
///
[AsyncRaiser]
void OnHandshaked(ITouchRpc client, VerifyOptionEventArgs e);
///
/// 当需要转发路由包时
///
///
///
[AsyncRaiser]
void OnRouting(ITouchRpc client, PackageRouterEventArgs e);
///
/// 当需要转发路由包时
///
///
///
Task OnRoutingAsync(ITouchRpc client, PackageRouterEventArgs e);
///
/// 在完成握手连接时。
///
///
///
///
Task OnHandshakedAsync(ITouchRpc client, VerifyOptionEventArgs e);
///
/// 在验证Token时
///
/// 客户端
/// 参数
[AsyncRaiser]
void OnHandshaking(ITouchRpc client, VerifyOptionEventArgs e);
///
/// 在验证Token时
///
///
///
///
Task OnHandshakingAsync(ITouchRpc client, VerifyOptionEventArgs e);
///
/// 收到协议数据
///
///
///
[AsyncRaiser]
void OnReceivedProtocolData(ITouchRpc client, ProtocolDataEventArgs e);
///
/// 收到协议数据
///
///
///
///
Task OnReceivedProtocolDataAsync(ITouchRpc client, ProtocolDataEventArgs e);
///
/// 流数据处理,用户需要在此事件中对e.Bucket手动释放。
/// 当流数据传输结束之后。并不意味着完成传输,请通过属性值进行判断。
///
///
///
[AsyncRaiser]
void OnStreamTransfered(ITouchRpc client, StreamStatusEventArgs e);
///
/// 流数据处理,用户需要在此事件中对e.Bucket手动释放。
/// 当流数据传输结束之后。并不意味着完成传输,请通过属性值进行判断。
///
///
///
///
Task OnStreamTransferedAsync(ITouchRpc client, StreamStatusEventArgs e);
///
/// 即将接收流数据,用户需要在此事件中对e.Bucket初始化。
///
///
///
[AsyncRaiser]
void OnStreamTransfering(ITouchRpc client, StreamOperationEventArgs e);
///
/// 即将接收流数据,用户需要在此事件中对e.Bucket初始化。
///
///
///
///
Task OnStreamTransferingAsync(ITouchRpc client, StreamOperationEventArgs e);
}
}