public EventHttpListener(RequestCallback cb) { LibLocator.TryToLoadDefaultIfNotInitialized(); _cb = cb; _eventBase = Event.EventBaseNew(); if (_eventBase.IsInvalid) throw new IOException("Unable to create event_base"); _evHttp = Event.EvHttpNew(_eventBase); if (_evHttp.IsInvalid) { Dispose(); throw new IOException("Unable to create evhttp"); } }
public EvUserEvent(EventBase evBase) { if (Platform.RunningOnWindows) { var winCb = new Event.D.event_callback_windows(CallbackWin); _winCbHandle = GCHandle.Alloc(winCb); _event = Event.EventNewWindows(evBase, new IntPtr(-1), 0, winCb, IntPtr.Zero); } else { var nixCb = new Event.D.event_callback_normal(CallbackNix); _nixCbHandle = GCHandle.Alloc(nixCb); _event = Event.EventNewNix(evBase, -1, 0, nixCb, IntPtr.Zero); } }
public void Start(string host, ushort port) { _eventBase = Event.EventBaseNew(); if (_eventBase.IsInvalid) throw new IOException("Unable to create event_base"); _evHttp = Event.EvHttpNew(_eventBase); if (_evHttp.IsInvalid) { Dispose(); throw new IOException ("Unable to create evhttp"); } _socket = Event.EvHttpBindSocketWithHandle(_evHttp, host, port); if (_socket.IsInvalid) { Dispose(); throw new IOException("Unable to bind to the specified address"); } _thread = new Thread(MainCycle) {Priority = ThreadPriority.Highest}; _thread.Start(); }
public static EvConnListener EvConnListenerNew(EventBase evBase, IntPtr cb, IntPtr ptr, uint flags, int backlog, IntPtr fd) { return Platform.RunningOnWindows ? EvConnListenerNewWindows(evBase, cb, ptr, flags, backlog, fd) : EvConnListenerNewNix(evBase, cb, ptr, flags, backlog, fd.ToInt32()); }