public override void AddSubElement(IStringifiable subElement) { base.AddSubElement(subElement); if (subElement is CurveTrader) { // find all curve traders CurveTrader curveTrader = (CurveTrader)subElement; m_CurveTraders.Add(curveTrader); } }
// // protected override void SetupInitialize(IEngineHub myEngineHub, IEngineContainer engineContainer, int engineID, bool setupGui) { if (typeof(UV.Strategies.ExecutionHubs.ExecutionContainers.MultiThreadContainer).IsAssignableFrom(engineContainer.GetType())) { // this is the "first" set up call from the manager container. base.SetupInitialize(myEngineHub, engineContainer, engineID, setupGui); m_MultiThreadContainer = (MultiThreadContainer)engineContainer; m_MultiThreadContainer.TryAddEngine(m_Scratcher); // we need to add our sub engines to the container, just to allow set up and messaging to correctly function } else { // this is the second set up call from the correct container, add correct sub engine mappings ThreadContainer execContainer = (ThreadContainer)engineContainer; execContainer.TryAddEngine(m_Scratcher); if (execContainer.IOrderEngine is CurveTrader) { m_CurveTrader = (CurveTrader)execContainer.IOrderEngine; } m_MultiThreadContainer.TryAddEngineIdToManagingContainer(execContainer, m_Scratcher.EngineID); } }