using System; using System.Threading; using Renci.SshNet.Common; namespace Renci.SshNet { /// /// Base interface for SSH subsystem implementations. /// internal interface ISubsystemSession : IDisposable { /// /// Gets a value indicating whether this session is open. /// /// /// true if this session is open; otherwise, false. /// bool IsOpen { get; } /// /// Connects the subsystem using a new SSH channel session. /// /// The session is already connected. /// The method was called after the session was disposed. void Connect(); /// /// Disconnects the subsystem channel. /// void Disconnect(); /// /// Waits a specified time for a given to get signaled. /// /// The handle to wait for. /// The time to wait for to get signaled. /// The connection was closed by the server. /// The channel was closed. /// The handle did not get signaled within the specified . void WaitOnHandle(WaitHandle waitHandle, TimeSpan operationTimeout); } }