}//constructor // // #endregion//Constructors #region Public Methods // ***************************************************************** // **** Public Methods **** // ***************************************************************** // // public override void RequestStop() { // Request gentle shut down QueryBuilderHubRequest e = new QueryBuilderHubRequest(); e.Request = QueryBuilderHubRequestCode.Stop; this.HubEventEnqueue(e); }
// // /// <summary> /// Called by external thread to request that the hub thread create a /// query to check to make sure out database has the /// instrument details supplied /// correctly in the database. /// </summary> /// <param name="instrDetails"></param> public void RequestCheckInstrDBDetails(InstrumentDetails instrDetails) { QueryBuilderHubRequest e = new QueryBuilderHubRequest(); e.Request = QueryBuilderHubRequestCode.RequestCheckDBInstrDetails; e.Data.Add(instrDetails); this.HubEventEnqueue(e); }
}// ProcessQueryBuildEvent() // // // /// <summary> /// called by the hub thread to process a request to create a query for instrument details /// </summary> /// <param name="requestArg"></param> private void ProcessRquestDBInstrDetails(QueryBuilderHubRequest requestArg) { Log.NewEntry(LogLevel.Minor, "ProcessCheckDBInstrDetails: Processing Request"); foreach (object obj in requestArg.Data) { InstrumentDetails instrDetails = (InstrumentDetails)obj; // TODO CALL DB INSTRUMENT METHODS FROM HERE } }
// // // #endregion//Private Methods #region Hub Event Handler // ***************************************************************** // **** Event Handlers **** // ***************************************************************** // protected override void HubEventHandler(EventArgs[] eArgList) { foreach (EventArgs e in eArgList) { if (e is BarEventArgs) { // This is a bar event. It was pushed onto me from the data hub. if (!m_IsShuttingDown) { m_EventList.Enqueue((BarEventArgs)e); } } else if (e is QueryBuilderHubRequest) { // this is an request to do something besides baring data! QueryBuilderHubRequest requestArg = (QueryBuilderHubRequest)e; switch (requestArg.Request) { case QueryBuilderHubRequestCode.Stop: m_IsShuttingDown = true; break; case QueryBuilderHubRequestCode.RequestCheckDBInstrDetails: ProcessRquestDBInstrDetails(requestArg); // not fully implemented break; default: Log.NewEntry(LogLevel.Error, "HubEventHandler : QueryBuilderHub {0} not implemented", requestArg.ToString()); break; } } else { Log.NewEntry(LogLevel.Error, "Unknown event type: {0}", e.ToString()); } } // Process Queries if (m_IsShuttingDown || m_EventList.Count >= WriteBlockSize) { ProcessQueryBuildEvent(); } if (m_IsShuttingDown) { base.Stop(); } }//HubEventHandler()