Example #1
0
 public EventManager WeakBind(string eventName, IHIEventHandler handler)
 {
     if (!_weakEventHandlers.ContainsKey(eventName))
     {
         _weakEventHandlers.Add(eventName, new WeakHashSet <IHIEventHandler>());
     }
     _weakEventHandlers[eventName].Add(handler);
     return(this);
 }
Example #2
0
        public EventManager StrongBind(string eventName, IHIEventHandler handler)
        {
            if (!_strongEventHandlers.ContainsKey(eventName))
            {
                _strongEventHandlers.Add(eventName, new HashSet <IHIEventHandler>());
            }

            _strongEventHandlers[eventName].Add(handler);
            return(this);
        }
Example #3
0
 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);
     }
 }
Example #4
0
 public EventManager WeakBind <T>(string eventName, IHIEventHandler <T> handler) where T : IHIEventArgs
 {
     return(WeakBind(eventName, (eventArgs => handler.Invoke(eventArgs as T))));
 }