internal static IntPtr AllocSocketAddress(IPEndPoint endpoint, Loop loop) { IntPtr ret; switch (endpoint.AddressFamily) { case AddressFamily.InterNetwork: ret = loop.Allocs.Alloc(Uvi.sockaddr_in_size); loop.CheckError(Uvi.uv_ip4_addr(endpoint.Address.ToString(), endpoint.Port, ret)); break; case AddressFamily.InterNetworkV6: ret = loop.Allocs.Alloc(Uvi.sockaddr_in6_size); loop.CheckError(Uvi.uv_ip6_addr(endpoint.Address.ToString(), endpoint.Port, ret)); break; default: throw new ArgumentException(String.Format("AddressFamily {0} not supported", endpoint.AddressFamily)); } return ret; }
internal static IntPtr AllocSocketAddress(IPEndPoint endpoint, Loop loop) { IntPtr ret; switch (endpoint.AddressFamily) { case AddressFamily.InterNetwork: ret = loop.Allocs.Alloc(Uvi.sockaddr_in_size); loop.CheckError(Uvi.uv_ip4_addr(endpoint.Address.ToString(), endpoint.Port, ret)); break; case AddressFamily.InterNetworkV6: ret = loop.Allocs.Alloc(Uvi.sockaddr_in6_size); loop.CheckError(Uvi.uv_ip6_addr(endpoint.Address.ToString(), endpoint.Port, ret)); break; default: throw new ArgumentException(String.Format("AddressFamily {0} not supported", endpoint.AddressFamily)); } return(ret); }
internal LoopWork(Loop loop, Action run, Action after, Action <LoopWork> completed) { _run = new uv_work_cb(this.Run); _after = new uv_after_work_cb(this.After); _runAction = run; _afterAction = after; _completed = completed; _loop = loop; _work = _loop.Requests.Create(uv_req_type.UV_WORK); try { _loop.CheckError(Uvi.uv_queue_work(_loop.Handle, _work, _run, _after)); } catch (Exception) { _work = _loop.Requests.Delete(_work); throw; } }
internal LoopWork(Loop loop, Action run, Action after, Action<LoopWork> completed) { _run = new uv_work_cb(this.Run); _after = new uv_after_work_cb(this.After); _runAction = run; _afterAction = after; _completed = completed; _loop = loop; _work = _loop.Requests.Create(uv_req_type.UV_WORK); try { _loop.CheckError(Uvi.uv_queue_work(_loop.Handle, _work, _run, _after)); } catch (Exception) { _work = _loop.Requests.Delete(_work); throw; } }