using System;
|
|
namespace Bro.Common.PubSub
|
{
|
/// <summary>
|
/// 发布/订阅中心
|
/// </summary>
|
public interface IPubSubCenter
|
{
|
/// <summary>
|
/// 订阅事件
|
/// </summary>
|
/// <param name="tag"></param>
|
/// <param name="method"></param>
|
/// <returns></returns>
|
bool Subscribe(string tag, Func<ISubscriber, object, object, object> method);
|
|
/// <summary>
|
/// 订阅事件
|
/// </summary>
|
/// <param name="tag"></param>
|
/// <param name="subscribe"></param>
|
/// <returns></returns>
|
bool Subscribe(string tag, ISubscriber subscribe);
|
|
/// <summary>
|
/// 发布事件
|
/// </summary>
|
/// <param name="tag"></param>
|
/// <param name="data"></param>
|
void Publish(string tag, object param1, object param2, bool isAsync);
|
|
/// <summary>
|
/// 获取所有订阅者
|
/// </summary>
|
/// <param name="tag"></param>
|
/// <returns></returns>
|
Subscribers GetSubscribers(string tag);
|
|
/// <summary>
|
/// 获取某个订阅者
|
/// </summary>
|
/// <param name="tag"></param>
|
/// <param name="name"></param>
|
/// <returns></returns>
|
ISubscriber GetSubscriber(string tag, string name);
|
|
/// <summary>
|
/// 移除某个订阅者
|
/// </summary>
|
/// <param name="tag"></param>
|
/// <param name="name"></param>
|
/// <returns></returns>
|
bool RemoveSubscriber(string tag, string name);
|
|
/// <summary>
|
/// 移除某类所有订阅者
|
/// </summary>
|
/// <param name="tag"></param>
|
/// <returns></returns>
|
bool RemoveSubscribers(string tag);
|
}
|
}
|