public bool Initialize(IDataProvider dataProvider, IOrderExecutionProvider orderExectioner) { lock (this) { _dataProvider = dataProvider; _operationalState = OperationalStateEnum.Initialized; } //GeneralHelper.SafeEventRaise(OperationalStatusChangedEvent, this); return(true); }
/// <summary> /// Unhooks Logon and Logout Events for the Order Execution Provider /// </summary> private void UnhookConnectionStatusEvents(IOrderExecutionProvider orderExecutionProvider) { try { orderExecutionProvider.LogonArrived -= OnLogonEventArrived; orderExecutionProvider.LogoutArrived -= OnLogoutEventArrived; orderExecutionProvider.OnLocateMessage -= OnLocateMessageArrived; orderExecutionProvider.OnPositionMessage -= OnPositionMessageArrived; } catch (Exception exception) { Logger.Error(exception, _type.FullName, "UnhookConnectionStatusEvents"); } }
public void UnInitialize() { lock (this) { _operationalState = OperationalStateEnum.UnInitialized; if (_dataProvider != null) { //_dataProvider.OperationalStatusChangedEvent -= new GeneralHelper.GenericDelegate<IOperational>(_subItem_OperationalStatusChangedEvent); _dataProvider = null; } if (_orderExecutionProvider != null) { //_orderExecutionProvider.OperationalStatusChangedEvent -= new GeneralHelper.GenericDelegate<IOperational>(_subItem_OperationalStatusChangedEvent); _orderExecutionProvider = null; } } //GeneralHelper.SafeEventRaise(OperationalStatusChangedEvent, this); }
public void UnInitialize() { lock (this) { if (_dataProvider != null) { _dataProvider.ValuesUpdateEvent -= new ValuesUpdatedDelegate(_provider_ValuesUpdateEvent); _dataProvider = null; } if (_orderExecutionProvider != null) { _orderExecutionProvider.OrderAddedEvent -= new GeneralHelper.GenericDelegate <Order>(_orderExecutionProvider_OrderUpdate); _orderExecutionProvider.OrderRemovedEvent -= new GeneralHelper.GenericDelegate <Order>(_orderExecutionProvider_OrderUpdate); _orderExecutionProvider.OrderUpdatedEvent -= new GeneralHelper.GenericDelegate <Order>(_orderExecutionProvider_OrderUpdate); _orderExecutionProvider = null; } _buyDashedPen.Dispose(); _sellDashedPen.Dispose(); } }
/// <summary> /// Processes the new incoming Order Execution Provider Login requests /// </summary> /// <param name="login">TradeHub Login object</param> /// <param name="applicationId">Unique Application ID</param> private void ProcessProviderLogonRequest(Login login, string applicationId) { try { List <string> appIds; // Check if the requested Execution Provider has already recieved login request if (_providersLoginRequestMap.TryGetValue(login.OrderExecutionProvider, out appIds)) { if (!appIds.Contains(applicationId)) { // Update List appIds.Add(applicationId); IOrderExecutionProvider orderExecutionProvider; if (_providersMap.TryGetValue(login.OrderExecutionProvider, out orderExecutionProvider)) { if (orderExecutionProvider != null) { if (Logger.IsInfoEnabled) { Logger.Info("Requested provider: " + login.OrderExecutionProvider + " module successfully loaded", _type.FullName, "CheckExecutionProviderAvailability"); } // If Order Execution Provider is connectd then raise event else wait for the Logon to arrive from Gateway if (orderExecutionProvider.IsConnected()) { // Raise Logon Event OnLogonEventArrived(login.OrderExecutionProvider); } } } } else { if (Logger.IsInfoEnabled) { Logger.Info("Login request is already entertained for the given App: " + applicationId, _type.FullName, "ProcessProviderLogonRequest"); } } } else { // Get a new instance of the requested OrderExecutionProvider IOrderExecutionProvider orderExecutionProvider = GetExecutionProviderInstance(login.OrderExecutionProvider); if (orderExecutionProvider != null) { appIds = new List <string>(); appIds.Add(applicationId); // Register events HookConnectionStatusEvents(orderExecutionProvider); // Start the requested OrderExecutionProvider Service orderExecutionProvider.Start(); // Update Internal maps if the requested Login Provider instance doesn't exists UpdateMapsOnNewProviderLogin(login, appIds, orderExecutionProvider); } else { if (Logger.IsInfoEnabled) { Logger.Info("Requested provider: " + login.OrderExecutionProvider + " module not found.", _type.FullName, "ProcessProviderLogonRequest"); } } } } catch (Exception exception) { Logger.Error(exception, _type.FullName, "ProcessProviderLogonRequest"); } }
public bool Initialize(IDataProvider dataProvider, IOrderExecutionProvider orderExectioner) { lock (this) { _dataProvider = dataProvider; _operationalState = OperationalStateEnum.Initialized; } //GeneralHelper.SafeEventRaise(OperationalStatusChangedEvent, this); return true; }
public void UnInitialize() { lock (this) { if (_dataProvider != null) { _dataProvider.ValuesUpdateEvent -= new ValuesUpdatedDelegate(_provider_ValuesUpdateEvent); _dataProvider = null; } if (_orderExecutionProvider != null) { _orderExecutionProvider.OrderAddedEvent -= new GeneralHelper.GenericDelegate<Order>(_orderExecutionProvider_OrderUpdate); _orderExecutionProvider.OrderRemovedEvent -= new GeneralHelper.GenericDelegate<Order>(_orderExecutionProvider_OrderUpdate); _orderExecutionProvider.OrderUpdatedEvent -= new GeneralHelper.GenericDelegate<Order>(_orderExecutionProvider_OrderUpdate); _orderExecutionProvider = null; } _buyDashedPen.Dispose(); _sellDashedPen.Dispose(); } }
public void Initialize(IDataProvider dataProvider, IOrderExecutionProvider orderExecutionProvider) { lock (this) { _dataProvider = dataProvider; _dataProvider.ValuesUpdateEvent += new ValuesUpdatedDelegate(_provider_ValuesUpdateEvent); _orderExecutionProvider = orderExecutionProvider; if (_orderExecutionProvider != null) { _orderExecutionProvider.OrderAddedEvent += new GeneralHelper.GenericDelegate<Order>(_orderExecutionProvider_OrderUpdate); _orderExecutionProvider.OrderRemovedEvent += new GeneralHelper.GenericDelegate<Order>(_orderExecutionProvider_OrderUpdate); _orderExecutionProvider.OrderUpdatedEvent += new GeneralHelper.GenericDelegate<Order>(_orderExecutionProvider_OrderUpdate); } ComponentResourceManager resources = new ComponentResourceManager(typeof(ProviderTradeChartSeries)); _imageDown = ((Image)(resources.GetObject("imageDown"))); _imageUp = ((Image)(resources.GetObject("imageUp"))); _imageCross = ((Image)(resources.GetObject("imageCross"))); _buyDashedPen.DashPattern = new float[] { 5, 5 }; _buyDashedPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Custom; _priceLevelPen.DashPattern = new float[] { 3, 3 }; _priceLevelPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Custom; _sellDashedPen.DashPattern = new float[] { 5, 5 }; _sellDashedPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Custom; } }