SftpWriteRequest
using Renci.SshNet.Sftp.Responses;
using System;
namespace Renci.SshNet.Sftp.Requests
{
internal class SftpWriteRequest : SftpRequest
{
public override SftpMessageTypes SftpMessageType => SftpMessageTypes.Write;
public byte[] Handle { get; set; }
public ulong Offset { get; set; }
public byte[] Data { get; set; }
public int Length { get; set; }
protected override int BufferCapacity => base.BufferCapacity + 4 + Handle.Length + 8 + 4 + Length;
public SftpWriteRequest(uint protocolVersion, uint requestId, byte[] handle, ulong offset, byte[] data, int length, Action<SftpStatusResponse> statusAction)
: base(protocolVersion, requestId, statusAction)
{
Handle = handle;
Offset = offset;
Data = data;
Length = length;
}
protected override void LoadData()
{
base.LoadData();
Handle = ReadBinary();
Offset = ReadUInt64();
Data = ReadBinary();
Length = Data.Length;
}
protected override void SaveData()
{
base.SaveData();
WriteBinaryString(Handle);
Write(Offset);
WriteBinary(Data, 0, Length);
}
}
}