using CryptoExchange.Net.Objects; using CryptoExchange.Net.Objects.Sockets; using CryptoExchange.Net.Sockets; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace CryptoExchange.Net.Interfaces { /// /// Message processor /// public interface IMessageProcessor { /// /// Id of the processor /// public int Id { get; } /// /// The identifiers for this processor /// public HashSet ListenerIdentifiers { get; } /// /// Handle a message /// /// /// /// Task Handle(SocketConnection connection, DataEvent message); /// /// Get the type the message should be deserialized to /// /// /// Type? GetMessageType(IMessageAccessor messageAccessor); /// /// Deserialize a message into object of type /// /// /// /// CallResult Deserialize(IMessageAccessor accessor, Type type); } }