using System; using System.Collections.Generic; using System.Text; using Renci.SshNet.Common; using Renci.SshNet.Security; using Renci.SshNet.Sftp; namespace Renci.SshNet { /// /// Factory for creating new services. /// internal partial interface IServiceFactory { IClientAuthentication CreateClientAuthentication(); /// /// Creates a new with the specified . /// /// The to use for creating a new session. /// /// An for the specified . /// /// is null. ISession CreateSession(ConnectionInfo connectionInfo); /// /// Creates a new in a given and with /// the specified operation timeout and encoding. /// /// The to create the in. /// The number of milliseconds to wait for an operation to complete, or -1 to wait indefinitely. /// The encoding. /// /// An . /// ISftpSession CreateSftpSession(ISession session, int operationTimeout, Encoding encoding); /// /// Create a new . /// /// /// A . /// PipeStream CreatePipeStream(); /// /// Negotiates a key exchange algorithm, and creates a for the negotiated /// algorithm. /// /// A of the key exchange algorithms supported by the client where the key is the name of the algorithm, and the value is the type implementing this algorithm. /// The names of the key exchange algorithms supported by the SSH server. /// /// A that was negotiated between client and server. /// /// is null. /// is null. /// No key exchange algorithm is supported by both client and server. IKeyExchange CreateKeyExchange(IDictionary clientAlgorithms, string[] serverAlgorithms); ISftpFileReader CreateSftpFileReader(string fileName, ISftpSession sftpSession, uint bufferSize); } }