-
-
Notifications
You must be signed in to change notification settings - Fork 931
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add IBaseClient for BaseClient and ISftpClient to inherit from (#975)
Add IBaseClient for BaseClient and ISftpClient to inherit from
- Loading branch information
1 parent
bd7c02f
commit 34ce2bd
Showing
4 changed files
with
114 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
using Renci.SshNet.Common; | ||
using System; | ||
using System.Net.Sockets; | ||
using System.Threading; | ||
#if FEATURE_TAP | ||
using System.Threading.Tasks; | ||
#endif | ||
|
||
namespace Renci.SshNet | ||
{ | ||
/// <summary> | ||
/// Serves as base class for client implementations, provides common client functionality. | ||
/// </summary> | ||
public interface IBaseClient | ||
{ | ||
/// <summary> | ||
/// Gets the connection info. | ||
/// </summary> | ||
/// <value> | ||
/// The connection info. | ||
/// </value> | ||
/// <exception cref="ObjectDisposedException">The method was called after the client was disposed.</exception> | ||
ConnectionInfo ConnectionInfo { get; } | ||
|
||
/// <summary> | ||
/// Gets a value indicating whether this client is connected to the server. | ||
/// </summary> | ||
/// <value> | ||
/// <c>true</c> if this client is connected; otherwise, <c>false</c>. | ||
/// </value> | ||
/// <exception cref="ObjectDisposedException">The method was called after the client was disposed.</exception> | ||
bool IsConnected { get; } | ||
|
||
/// <summary> | ||
/// Gets or sets the keep-alive interval. | ||
/// </summary> | ||
/// <value> | ||
/// The keep-alive interval. Specify negative one (-1) milliseconds to disable the | ||
/// keep-alive. This is the default value. | ||
/// </value> | ||
/// <exception cref="ObjectDisposedException">The method was called after the client was disposed.</exception> | ||
TimeSpan KeepAliveInterval { get; set; } | ||
|
||
/// <summary> | ||
/// Occurs when an error occurred. | ||
/// </summary> | ||
/// <example> | ||
/// <code source="..\..\src\Renci.SshNet.Tests\Classes\SshClientTest.cs" region="Example SshClient Connect ErrorOccurred" language="C#" title="Handle ErrorOccurred event" /> | ||
/// </example> | ||
event EventHandler<ExceptionEventArgs> ErrorOccurred; | ||
|
||
/// <summary> | ||
/// Occurs when host key received. | ||
/// </summary> | ||
/// <example> | ||
/// <code source="..\..\src\Renci.SshNet.Tests\Classes\SshClientTest.cs" region="Example SshClient Connect HostKeyReceived" language="C#" title="Handle HostKeyReceived event" /> | ||
/// </example> | ||
event EventHandler<HostKeyEventArgs> HostKeyReceived; | ||
|
||
/// <summary> | ||
/// Connects client to the server. | ||
/// </summary> | ||
/// <exception cref="InvalidOperationException">The client is already connected.</exception> | ||
/// <exception cref="ObjectDisposedException">The method was called after the client was disposed.</exception> | ||
/// <exception cref="SocketException">Socket connection to the SSH server or proxy server could not be established, or an error occurred while resolving the hostname.</exception> | ||
/// <exception cref="SshConnectionException">SSH session could not be established.</exception> | ||
/// <exception cref="SshAuthenticationException">Authentication of SSH session failed.</exception> | ||
/// <exception cref="ProxyException">Failed to establish proxy connection.</exception> | ||
void Connect(); | ||
|
||
#if FEATURE_TAP | ||
/// <summary> | ||
/// Asynchronously connects client to the server. | ||
/// </summary> | ||
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to observe.</param> | ||
/// <returns>A <see cref="Task"/> that represents the asynchronous connect operation. | ||
/// </returns> | ||
/// <exception cref="InvalidOperationException">The client is already connected.</exception> | ||
/// <exception cref="ObjectDisposedException">The method was called after the client was disposed.</exception> | ||
/// <exception cref="SocketException">Socket connection to the SSH server or proxy server could not be established, or an error occurred while resolving the hostname.</exception> | ||
/// <exception cref="SshConnectionException">SSH session could not be established.</exception> | ||
/// <exception cref="SshAuthenticationException">Authentication of SSH session failed.</exception> | ||
/// <exception cref="ProxyException">Failed to establish proxy connection.</exception> | ||
Task ConnectAsync(CancellationToken cancellationToken); | ||
#endif | ||
|
||
/// <summary> | ||
/// Disconnects client from the server. | ||
/// </summary> | ||
/// <exception cref="ObjectDisposedException">The method was called after the client was disposed.</exception> | ||
void Disconnect(); | ||
|
||
/// <summary> | ||
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. | ||
/// </summary> | ||
void Dispose(); | ||
|
||
/// <summary> | ||
/// Sends a keep-alive message to the server. | ||
/// </summary> | ||
/// <remarks> | ||
/// Use <see cref="KeepAliveInterval"/> to configure the client to send a keep-alive at regular | ||
/// intervals. | ||
/// </remarks> | ||
/// <exception cref="ObjectDisposedException">The method was called after the client was disposed.</exception> | ||
void SendKeepAlive(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters