using System;
using System.Collections.Generic;
namespace TyphoonEvent
{
public class EventKit
{
internal static EventKitImpl Impl => EventKitImpl.Instance;
///
/// 注册
///
/// 代理
/// 消息类型
///
public static IEventProxy Register(Action handler) => Impl.Register(handler);
///
/// 发布(触发消息)
///
/// 消息
/// 消息类型
public static void Publish(T message = default) => Impl.Publish(message);
///
/// 主动构建
///
public static void Build() => Impl.Build();
///
/// 重建所有Handlers
///
public static void RebuildAllHandlers() => Impl.RebuildAllHandlers();
///
/// 重建Handlers清单
///
/// 消息类型
public static void RebuildHandlers() => Impl.RebuildHandlers();
internal static void Unregister(EventProxy proxy) => Impl.Unregister(proxy);
internal static ProxyGroup GetGroup(uint key) => Impl.GetGroup(key);
internal static void Register(IEventProxy[] proxies) => Impl.Register(proxies);
internal static void ReleaseGroup(uint id) => Impl.ReleaseGroup(id);
internal static EventOperation NewOperation(IEventProxy[] proxies) => Impl.NewOperation(proxies);
internal static Dictionary Collections => Impl.Collections;
internal static Dictionary Handlers => Impl.Handlers;
internal static Dictionary Groups => Impl.Groups;
public static bool HasInstance() => EventKitImpl.HasInstance();
public static void SetToNull() => EventKitImpl.SetToNull();
}
}