using System; using System.Net.Sockets; using System.Threading; using System.Threading.Tasks; using Renci.SshNet.Common; namespace Renci.SshNet { /// /// Serves as base class for client implementations, provides common client functionality. /// public interface IBaseClient { /// /// Gets the connection info. /// /// /// The connection info. /// /// The method was called after the client was disposed. ConnectionInfo ConnectionInfo { get; } /// /// Gets a value indicating whether this client is connected to the server. /// /// /// true if this client is connected; otherwise, false. /// /// The method was called after the client was disposed. bool IsConnected { get; } /// /// Gets or sets the keep-alive interval. /// /// /// The keep-alive interval. Specify negative one (-1) milliseconds to disable the /// keep-alive. This is the default value. /// /// The method was called after the client was disposed. TimeSpan KeepAliveInterval { get; set; } /// /// Occurs when an error occurred. /// /// /// /// event EventHandler ErrorOccurred; /// /// Occurs when host key received. /// /// /// /// event EventHandler HostKeyReceived; /// /// Connects client to the server. /// /// The client is already connected. /// The method was called after the client was disposed. /// Socket connection to the SSH server or proxy server could not be established, or an error occurred while resolving the hostname. /// SSH session could not be established. /// Authentication of SSH session failed. /// Failed to establish proxy connection. void Connect(); /// /// Asynchronously connects client to the server. /// /// The to observe. /// A that represents the asynchronous connect operation. /// /// The client is already connected. /// The method was called after the client was disposed. /// Socket connection to the SSH server or proxy server could not be established, or an error occurred while resolving the hostname. /// SSH session could not be established. /// Authentication of SSH session failed. /// Failed to establish proxy connection. Task ConnectAsync(CancellationToken cancellationToken); /// /// Disconnects client from the server. /// /// The method was called after the client was disposed. void Disconnect(); /// /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// void Dispose(); /// /// Sends a keep-alive message to the server. /// /// /// Use to configure the client to send a keep-alive at regular /// intervals. /// /// The method was called after the client was disposed. void SendKeepAlive(); } }