using System.Globalization; namespace Renci.SshNet.Messages.Connection { /// /// Base class for all channel specific SSH messages. /// public abstract class ChannelMessage : Message { /// /// Gets or sets the local channel number. /// /// /// The local channel number. /// public uint LocalChannelNumber { get; protected set; } /// /// Gets the size of the message in bytes. /// /// /// The size of the messages in bytes. /// protected override int BufferCapacity { get { var capacity = base.BufferCapacity; capacity += 4; // LocalChannelNumber return capacity; } } /// /// Initializes a new instance of the class. /// protected ChannelMessage() { } /// /// Initializes a new instance of the class with the specified local channel number. /// /// The local channel number. protected ChannelMessage(uint localChannelNumber) { LocalChannelNumber = localChannelNumber; } /// /// Called when type specific data need to be loaded. /// protected override void LoadData() { LocalChannelNumber = ReadUInt32(); } /// /// Called when type specific data need to be saved. /// protected override void SaveData() { Write(LocalChannelNumber); } /// /// Returns a that represents this instance. /// /// /// A that represents this instance. /// public override string ToString() { return string.Format(CultureInfo.CurrentCulture, "{0} : #{1}", base.ToString(), LocalChannelNumber); } } }