ISftpSession
using Renci.SshNet.Sftp.Responses;
using System;
using System.Collections.Generic;
using System.Threading;
namespace Renci.SshNet.Sftp
{
internal interface ISftpSession : ISubsystemSession, IDisposable
{
uint ProtocolVersion { get; }
string WorkingDirectory { get; }
void ChangeDirectory(string path);
string GetCanonicalPath(string path);
SftpFileAttributes RequestFStat(byte[] handle);
SftpFileAttributes RequestLStat(string path);
void RequestMkDir(string path);
byte[] RequestOpen(string path, Flags flags, bool nullOnError = false);
byte[] RequestOpenDir(string path, bool nullOnError = false);
void RequestPosixRename(string oldPath, string newPath);
byte[] RequestRead(byte[] handle, ulong offset, uint length);
KeyValuePair<string, SftpFileAttributes>[] RequestReadDir(byte[] handle);
void RequestRemove(string path);
void RequestRename(string oldPath, string newPath);
void RequestRmDir(string path);
void RequestSetStat(string path, SftpFileAttributes attributes);
SftpFileSytemInformation RequestStatVfs(string path, bool nullOnError = false);
void RequestSymLink(string linkpath, string targetpath);
void RequestFSetStat(byte[] handle, SftpFileAttributes attributes);
void RequestWrite(byte[] handle, ulong offset, byte[] data, int length, AutoResetEvent wait, Action<SftpStatusResponse> writeCompleted = null);
void RequestClose(byte[] handle);
uint CalculateOptimalReadLength(uint bufferSize);
uint CalculateOptimalWriteLength(uint bufferSize, byte[] handle);
}
}