示例#1
0
        internal StreamShutdown(StreamHandle streamHandle, Action <StreamHandle, Exception> completedAction)
        {
            if (streamHandle is null)
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.streamHandle);
            }

            streamHandle.Validate();

            _streamHandle    = streamHandle;
            _completedAction = completedAction;

            _watcherRequest = new WatcherRequest(
                uv_req_type.UV_SHUTDOWN,
                (r, e) => OnCompleted(e),
                h => NativeMethods.Shutdown(h, _streamHandle.InternalHandle),
                closeOnCallback: true);
        }
示例#2
0
        public TcpConnect(Tcp tcp, IPEndPoint remoteEndPoint, Action <Tcp, Exception> connectedAction)
        {
            if (tcp is null)
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.tcp);
            }
            if (remoteEndPoint is null)
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.remoteEndPoint);
            }
            if (connectedAction is null)
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.connectedAction);
            }

            tcp.Validate();

            Tcp = tcp;
            _connectedAction = connectedAction;
            _watcherRequest  = new WatcherRequest(
                uv_req_type.UV_CONNECT,
                (r, e) => OnConnected(e),
                h => NativeMethods.TcpConnect(h, tcp.InternalHandle, remoteEndPoint));
        }
示例#3
0
        public PipeConnect(Pipe pipe, string remoteName, Action <Pipe, Exception> connectedAction)
        {
            if (pipe is null)
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.pipe);
            }
            if (string.IsNullOrEmpty(remoteName))
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.remoteName);
            }
            if (connectedAction is null)
            {
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.connectedAction);
            }

            pipe.Validate();

            Pipe             = pipe;
            _connectedAction = connectedAction;
            _watcherRequest  = new WatcherRequest(
                uv_req_type.UV_CONNECT,
                (r, e) => OnConnected(e),
                h => NativeMethods.PipeConnect(h, pipe.InternalHandle, remoteName));
        }