using System; using System.Threading.Tasks; using CryptoExchange.Net.Objects.Options; using CryptoExchange.Net.Objects.Sockets; namespace CryptoExchange.Net.Interfaces { /// /// Base class for socket API implementations /// public interface ISocketClient: IDisposable { /// /// The exchange name /// string Exchange { get; } /// /// The options provided for this client /// ExchangeOptions ClientOptions { get; } /// /// Incoming kilobytes per second of data /// public double IncomingKbps { get; } /// /// The current amount of connections to the API from this client. A connection can have multiple subscriptions. /// public int CurrentConnections { get; } /// /// The current amount of subscriptions running from the client /// public int CurrentSubscriptions { get; } /// /// Unsubscribe from a stream using the subscription id received when starting the subscription /// /// The id of the subscription to unsubscribe /// Task UnsubscribeAsync(int subscriptionId); /// /// Unsubscribe from a stream /// /// The subscription to unsubscribe /// Task UnsubscribeAsync(UpdateSubscription subscription); /// /// Unsubscribe all subscriptions /// /// Task UnsubscribeAllAsync(); } }