// ***************************************************************** // **** Properties **** // ***************************************************************** // // #endregion//Properties #region Public Methods // ***************************************************************** // **** Public Methods **** // ***************************************************************** // // // // // // /// <summary> /// Operate in order and the last step contains creation of another thread. /// </summary> public void Run() { // Initiatelize the logging instrument. Logging.InitiateLogging(m_CountryCode); // Read configuration parameters that include start date, end date and future date from the txt file. ReadConfigFile(); // Create data base reader connection and read all ticker info and economic data from the database. DataBaseReader m_DataBaseReader = new DataBaseReader(); // Create the tickerlist from what we got from the data base reader and also get tickers by country. TickerList m_TickerList = new TickerList(m_DataBaseReader, m_CountryCode); // Get all tickers from one specified country and prepare chunks of tickers. m_TickerList.SetTickersToChunks(m_CountryCode); //// Connect to the Bloomberg to get economic data. ConnectToBloomberg(); ////// Test only one ticker!!! //m_TickerList.TryOneTicker("UGRSSOTO Index", true); //m_StartDate = "20110101"; //m_FutureDate = "20140201"; //m_EconomicDataManager = new EconomicDataManager(m_StartDate, m_EndDate, m_FutureDate); //m_ListenerManager = new ListenerManager(m_Session, m_TickerList, m_EconomicDataManager); //m_Writer = new Writer(m_EconomicDataManager, m_ListenerManager, m_DataBaseReader); //m_EconomicDataManager.SetWriter(m_Writer); //m_Writer.StringGeneratingComplete += new EventHandler(WriterManager_StringGeneratingComplete); //m_ListenerManager.StartEconomicDataListening(); //// Assign date range for economic data manager. m_EconomicDataManager = new EconomicDataManager(m_StartDate, m_EndDate, m_FutureDate); // Create listener manager to do chunk by chunk listening. m_ListenerManager = new ListenerManager(m_Session, m_TickerList, m_EconomicDataManager); // Create writer and currently there is other thread created. m_Writer = new Writer(m_EconomicDataManager, m_ListenerManager, m_DataBaseReader); // Economic data series need writer. m_EconomicDataManager.SetWriter(m_Writer); // Subscribe to the event when string generates complete. m_Writer.StringGeneratingComplete += new EventHandler(WriterManager_StringGeneratingComplete); // Launch listener manager. m_ListenerManager.StartEconomicDataListening(); }
// ***************************************************************** // **** Constructors **** // ***************************************************************** // // // /// <summary> /// Set values to the members. /// </summary> /// <param name="session"></param> /// <param name="tickers"></param> /// <param name="economicDataManager"></param> public ListenerManager(Session session, TickerList tickerList, EconomicDataManager economicDataManager) { // Set corresponding values to members. m_TickerList = tickerList; m_Session = session; m_EconomicDataManager = economicDataManager; m_EventWaitHandle = new EventWaitHandle(false, EventResetMode.ManualReset); // After future data listen complete, get valid tickers and do latest and historical listening only to those good tickers. m_ValidTickers = new List <string>(); // Set timer. m_Timer = new Timer(); m_Timer.Interval = m_WaitingSeconds * 1000; m_Timer.Enabled = true; m_FutureDataListener = new FutureDataListener(m_Session, m_EconomicDataManager, m_Timer); m_LatestDataListener = new LatestDataListener(m_Session, m_EconomicDataManager, m_Timer); m_HistoricalDataListener = new HistoricalDataListener(m_Session, m_EconomicDataManager, m_Timer); m_FutureDataListener.FutureListenComplete += new EventHandler(FutureDataListener_FutureListenComplete); m_LatestDataListener.LatestListenComplete += new EventHandler(LatestDataListener_LatestListenComplete); m_HistoricalDataListener.HistoricalListenComplete += new EventHandler(HistoricalDataListener_HistoricalListenComplete); }