2022-05-17 23:23:47 +02:00

64 lines
1.7 KiB
C#

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