public void RemoveCoreEventHandler(string eventType, ICoreEventHandler handler) { if (!this._coreEventsHandlers[eventType].Remove(handler)) { Log.Warning("attempt to remove core handler which doesn't exist in router"); } }
public void AddCoreEventHandler(string eventType, ICoreEventHandler handler) { if (_coreEventsHandlers.GetValueOrDefault(eventType, null) == null) { _coreEventsHandlers[eventType] = new List <ICoreEventHandler>(); } this._coreEventsHandlers[eventType].Add(handler); }
private static void RegisterEventHandles(ICoreEventHandler eventHandler) { eventHandles.MainLoop = eventHandler.OnMainLoop; eventHandles.RunScript = eventHandler.OnRunScript; eventHandles.Closure = eventHandler.OnClosure; eventHandles.Signal = eventHandler.OnSignal; int size = Marshal.SizeOf(typeof(NativeEventHandles)); IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(eventHandles, ptr, false); NativeFunctions.RegisterHandlers(ptr, (uint)size); Marshal.FreeHGlobal(ptr); }
public static int Init(IntPtr nativeHandlesPtr, int nativeHandlesLength, ICoreFunctionHandler functionHandler, ICoreEventHandler eventHandler) { int result = Init(nativeHandlesPtr, nativeHandlesLength, functionHandler); if (result == 0) { RegisterEventHandles(eventHandler); } return(result); }
public void UnhookCoreEvent(ICoreEventHandler handler) { _router.RemoveCoreEventHandler(handler.GetHandlingEventType(), handler); }
public void HookCoreEvent(ICoreEventHandler handler) { _router.AddCoreEventHandler(handler.GetHandlingEventType(), handler); }