public EventManager WeakBind(string eventName, IHIEventHandler handler) { if (!_weakEventHandlers.ContainsKey(eventName)) { _weakEventHandlers.Add(eventName, new WeakHashSet <IHIEventHandler>()); } _weakEventHandlers[eventName].Add(handler); return(this); }
public EventManager StrongBind(string eventName, IHIEventHandler handler) { if (!_strongEventHandlers.ContainsKey(eventName)) { _strongEventHandlers.Add(eventName, new HashSet <IHIEventHandler>()); } _strongEventHandlers[eventName].Add(handler); return(this); }
private void SafeFire(IHIEventHandler handler, IHIEventArgs eventArgs) { try { handler.Invoke(eventArgs); } catch (Exception e) { string dumpPath = CoreManager.ServerCore.DumpException(e); CoreManager.ServerCore.ConsoleManager.Error("Event Handler", "An unhandled exception from an event handler has been swallowed!"); CoreManager.ServerCore.ConsoleManager.Error("Event Handler", " An exception dump has been saved to " + dumpPath); } }
public EventManager WeakBind <T>(string eventName, IHIEventHandler <T> handler) where T : IHIEventArgs { return(WeakBind(eventName, (eventArgs => handler.Invoke(eventArgs as T)))); }