using Capnp.Rpc; using FabAccessAPI.Schema; using System; using System.Threading.Tasks; namespace FabAccessAPI { public interface IAPI { /// /// Data to establish connection. /// /// Without SecretProperties ConnectionData ConnectionData { get; } /// /// Information about the established connection. /// ConnectionInfo ConnectionInfo { get; } /// /// Is API connected? /// bool IsConnected { get; } /// /// Get session when connection is established /// Session Session { get; } /// /// Event on changes in connection state. /// event EventHandler ConnectionStatusChanged; /// /// Connect to BFFH Server /// /// Task Connect(ConnectionData connectionData, TcpRpcClient tcpRpcClient = null); /// /// Disconnect from BFFH Server /// Task Disconnect(); /// /// Reconnect after connection loss with the last ConnectionData /// Task Reconnect(); /// /// Connect to Server and get ConnectionInfo. /// The Connection is not maintained. /// Task TestConnection(ConnectionData connectionData, TcpRpcClient tcpRpcClient = null); } }