ChannelExtendedDataMessage.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. namespace Renci.SshNet.Messages.Connection
  2. {
  3. /// <summary>
  4. /// Represents SSH_MSG_CHANNEL_EXTENDED_DATA message.
  5. /// </summary>
  6. [Message("SSH_MSG_CHANNEL_EXTENDED_DATA", 95)]
  7. public class ChannelExtendedDataMessage : ChannelMessage
  8. {
  9. /// <summary>
  10. /// Gets message data type code.
  11. /// </summary>
  12. public uint DataTypeCode { get; private set; }
  13. /// <summary>
  14. /// Gets message data.
  15. /// </summary>
  16. public byte[] Data { get; private set; }
  17. /// <summary>
  18. /// Initializes a new instance of the <see cref="ChannelExtendedDataMessage"/> class.
  19. /// </summary>
  20. public ChannelExtendedDataMessage()
  21. {
  22. }
  23. /// <summary>
  24. /// Initializes a new instance of the <see cref="ChannelExtendedDataMessage"/> class.
  25. /// </summary>
  26. /// <param name="localChannelNumber">The local channel number.</param>
  27. /// <param name="dataTypeCode">The message data type code.</param>
  28. /// <param name="data">The message data.</param>
  29. public ChannelExtendedDataMessage(uint localChannelNumber, uint dataTypeCode, byte[] data)
  30. {
  31. LocalChannelNumber = localChannelNumber;
  32. DataTypeCode = dataTypeCode;
  33. Data = data;
  34. }
  35. /// <summary>
  36. /// Loads the data.
  37. /// </summary>
  38. protected override void LoadData()
  39. {
  40. base.LoadData();
  41. DataTypeCode = ReadUInt32();
  42. Data = ReadBinaryString();
  43. }
  44. /// <summary>
  45. /// Saves the data.
  46. /// </summary>
  47. protected override void SaveData()
  48. {
  49. base.SaveData();
  50. Write(DataTypeCode);
  51. WriteBinaryString(Data);
  52. }
  53. }
  54. }