예제 #1
0
 public void Complete(SftpResponse response)
 {
     if (response is SftpStatusResponse)
     {
         this._statusAction(response as SftpStatusResponse);
     }
     else if (response is SftpAttrsResponse)
     {
         this._attrsAction(response as SftpAttrsResponse);
     }
     else if (response is SftpDataResponse)
     {
         this._dataAction(response as SftpDataResponse);
     }
     else if (response is SftpExtendedReplyResponse)
     {
         this._extendedReplyAction(response as SftpExtendedReplyResponse);
     }
     else if (response is SftpHandleResponse)
     {
         this._handleAction(response as SftpHandleResponse);
     }
     else if (response is SftpNameResponse)
     {
         this._nameAction(response as SftpNameResponse);
     }
     else
     {
         throw new InvalidOperationException(string.Format("Response of type '{0}' is not expected.", response.GetType().Name));
     }
 }
예제 #2
0
        public override void Complete(SftpResponse response)
        {
            var attrsResponse = response as SftpAttrsResponse;

            if (attrsResponse != null)
            {
                _attrsAction(attrsResponse);
            }
            else
            {
                base.Complete(response);
            }
        }
예제 #3
0
        public override void Complete(SftpResponse response)
        {
            var dataResponse = response as SftpDataResponse;

            if (dataResponse != null)
            {
                _dataAction(dataResponse);
            }
            else
            {
                base.Complete(response);
            }
        }
예제 #4
0
        public override void Complete(SftpResponse response)
        {
            var handleResponse = response as SftpHandleResponse;

            if (handleResponse != null)
            {
                _handleAction(handleResponse);
            }
            else
            {
                base.Complete(response);
            }
        }
예제 #5
0
        public override void Complete(SftpResponse response)
        {
            var nameResponse = response as SftpNameResponse;

            if (nameResponse != null)
            {
                _nameAction(nameResponse);
            }
            else
            {
                base.Complete(response);
            }
        }
예제 #6
0
        public virtual void Complete(SftpResponse response)
        {
            var statusResponse = response as SftpStatusResponse;

            if (statusResponse != null)
            {
                _statusAction(statusResponse);
            }
            else
            {
                throw new InvalidOperationException(string.Format("Response of type '{0}' is not expected.", response.GetType().Name));
            }
        }
예제 #7
0
        public override void Complete(SftpResponse response)
        {
            var extendedReplyResponse = response as SftpExtendedReplyResponse;

            if (extendedReplyResponse != null)
            {
                _extendedReplyAction(extendedReplyResponse);
            }
            else
            {
                base.Complete(response);
            }
        }
예제 #8
0
        private void HandleResponse(SftpResponse response)
        {
            SftpRequest request;
            lock (_requests)
            {
                _requests.TryGetValue(response.ResponseId, out request);
                if (request != null)
                {
                    _requests.Remove(response.ResponseId);
                }
            }

            if (request == null)
                throw new InvalidOperationException("Invalid response.");

            request.Complete(response);
        }