2
0

SftpReadRequestBuilder.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using Renci.SshNet.Sftp.Requests;
  3. using Renci.SshNet.Sftp.Responses;
  4. namespace Renci.SshNet.Tests.Classes.Sftp
  5. {
  6. internal class SftpReadRequestBuilder
  7. {
  8. private uint _protocolVersion;
  9. private uint _requestId;
  10. private byte[] _handle;
  11. private uint _offset;
  12. private uint _length;
  13. private Action<SftpDataResponse> _dataAction;
  14. private Action<SftpStatusResponse> _statusAction;
  15. public SftpReadRequestBuilder WithProtocolVersion(uint protocolVersion)
  16. {
  17. _protocolVersion = protocolVersion;
  18. return this;
  19. }
  20. public SftpReadRequestBuilder WithRequestId(uint requestId)
  21. {
  22. _requestId = requestId;
  23. return this;
  24. }
  25. public SftpReadRequestBuilder WithHandle(byte[] handle)
  26. {
  27. _handle = handle;
  28. return this;
  29. }
  30. public SftpReadRequestBuilder WithOffset(uint offset)
  31. {
  32. _offset = offset;
  33. return this;
  34. }
  35. public SftpReadRequestBuilder WithLength(uint length)
  36. {
  37. _length = length;
  38. return this;
  39. }
  40. public SftpReadRequestBuilder WithDataAction(Action<SftpDataResponse> dataAction)
  41. {
  42. _dataAction = dataAction;
  43. return this;
  44. }
  45. public SftpReadRequestBuilder WithStatusAction(Action<SftpStatusResponse> statusAction)
  46. {
  47. _statusAction = statusAction;
  48. return this;
  49. }
  50. public SftpReadRequest Build()
  51. {
  52. var dataAction = _dataAction ?? ((dataResponse) => { });
  53. var statusAction = _statusAction ?? ((statusResponse) => { });
  54. return new SftpReadRequest(_protocolVersion, _requestId, _handle, _offset, _length, dataAction, statusAction);
  55. }
  56. }
  57. }