using System;
namespace TradeIdeas.TIProData.Interfaces
{
public interface IConnectionMaster : IDisposable
{
///
/// This lets you set the username and related items for the connection.
///
ILoginManager LoginManager { get; }
///
/// This provides ping statistics, if required.
/// This is sometimes required to keep the connection alive.
///
PingManager PingManager { get; }
///
/// This is a convenent way to send messages. It helps manage retries, among
/// other things.
///
ISendManager SendManager { get; }
///
/// This takes care of reading and setting symbol lists.
///
ListManager ListManager { get; }
///
/// This is the way to request streaming data for an alert window.
///
StreamingAlertsManager StreamingAlertsManager { get; }
///
/// This is the way to request historical alerts.
///
HistoryManager HistoryManager { get; }
///
/// This is the way to request historical top list data.
///
/// At one time this was also used for streaming data.
/// TopListRequest is now the preferred way to get streaming or non-historical snapshot data.
///
TopListManager TopListManager { get; }
///
/// This accesses the company name and exchange. We cache it so we can access it
/// quickly and we don't send a lot of duplicate requests to the server.
///
ISymbolDetailsCacheManager SymbolDetailsCacheManager { get; }
///
/// This is the way to run the OddsMaker.
///
OddsMakerManager OddsMakerManager { get; }
///
/// This is the preferred way to request icons and the like.
///
ImageCacheManager ImageCacheManager { get; }
///
/// This is the way to get the company profile text
///
CompanyProfileManager CompanyProfileManager { get; }
///
/// This is the way to get insider trades
///
InsidersManager InsidersManager { get; }
///
/// This provides limited access to the connection life cycle. The main program
/// can use this to offer connection instructions or to monitor the status of the
/// connection.
///
ConnectionBase ConnectionBase { get; }
///
/// This is related to TIQ-Like stuff such as RBI, GBI
///
TraditionalAlertsManager TraditionalAlertsManager { get; }
}
}