private static void UVConnectCallback(IntPtr reqHandle, Int32 status) { var req = FromIntPtr <UVConnectRquest>(reqHandle); var callback = req.mCallback; var state = req.mState; UVException error = null; if (status < 0) { UVIntrop.Check(status, out error); } try { if (callback != null) { callback(req, status, error, state); } } catch (Exception ex) { throw; } finally { req.Close(); } }
/// <summary> /// 触发已发送 /// </summary> /// <param name="status"></param> /// <param name="error"></param> public void RaiseSended(Int32 status, UVException error) { try { if (this.mWriteCallback != null) { this.mWriteCallback(this, status, error, this.mWriteCallbackState); } } catch (Exception ex) { this.mWriteCallback = null; this.mWriteCallbackState = null; UnpinGCHandles(); //Trace.Error("UvWriteCb", ex); throw; } }
private unsafe static void UVWriteCb(IntPtr reqHandle, Int32 status) { var req = FromIntPtr <UVWriteRequest>(reqHandle); UVException error = null; if (status < 0) { UVIntrop.Check(status, out error); } try { req.RaiseSended(status, error); } catch { throw; } }
public static void ip6_addr(string ip, int port, out SockAddr addr, out UVException error) { Check(uv_ip6_addr(ip, port, out addr), out error); }
public static void Check(int statusCode, out UVException error) { // Note: method is explicitly small so the success case is easily inlined error = statusCode < 0 ? GetError(statusCode) : null; }