/// <summary> /// /// </summary> public void Dispose() { lock (this) { if (_orders != null) { _orders.UnInitialize(); _orders.Dispose(); _orders = null; } if (_adapter != null) { _adapter = null; } if (_core != null) { _desk = null; _core = null; } if (_messageLoopOperator != null) { _messageLoopOperator.Stop(); _messageLoopOperator.Dispose(); _messageLoopOperator = null; } ChangeOperationalState(OperationalStateEnum.Disposed); } //GC.Collect(); }
/// <summary> /// /// </summary> public void UnInitialize() { _manager = null; _adapter = null; ChangeOperationalState(OperationalStateEnum.NotOperational); }
/// <summary> /// Constructor. /// </summary> public FXCMOrders(FXCMAdapter adapter, OrderExecutionSourceStub stub) { _adapter = adapter; StatusSynchronizationEnabled = true; StatusSynchronizationSource = adapter; _stub = stub; _stub.Initialize(this); }
/// <summary> /// Constructor. /// </summary> public FXCMConnectionManager(FXCMAdapter adapter) { ChangeOperationalState(OperationalStateEnum.Constructed); _subscriptionResponse = -1; _adapter = adapter; _messageLoopOperator = new BackgroundMessageLoopOperator(false); _orders = new FXCMOrders(_messageLoopOperator); _messageLoopOperator.Start(); }
/// <summary> /// /// </summary> public bool Initialize(FXCMAdapter adapter, FXCMConnectionManager manager) { SystemMonitor.CheckError(_messageLoopOperator.InvokeRequred == false, "Init must better be called on message loop method."); //TODO: Guess what this piece does StatusSynchronizationEnabled = true; StatusSynchronizationSource = manager; _adapter = adapter; _manager = manager; ChangeOperationalState(OperationalStateEnum.Operational); return(true); }
/// <summary> /// Constructor. /// </summary> public FXCMData(FXCMAdapter adapter, DataSourceStub stub) { _adapter = adapter; _dataSourceStub = stub; _dataSourceStub.Initialize(this); StatusSynchronizationEnabled = true; StatusSynchronizationSource = adapter; foreach (string symbol in ForexSymbols) { _dataSourceStub.AddSuggestedSymbol(new Symbol(Symbol.SymbolGroup.Forex, symbol)); } }
public int IsDataSourceSymbolCompatible(ComponentId dataSourceId, Symbol symbol) { FXCMAdapter adapter = _adapter; if (adapter != null && adapter.DataSourceId.HasValue && adapter.DataSourceId.Value.Id == dataSourceId && adapter.Data.Stub.IsSuggestedSymbol(symbol)) { return(int.MaxValue); } else { return(0); } }
/// <summary> /// /// </summary> public bool Initialize(FXCMAdapter adapter, FXCMConnectionManager manager) { SystemMonitor.CheckError(_messageLoopOperator.InvokeRequred == false, "Init must better be called on message loop method."); //TODO: Guess what this piece does StatusSynchronizationEnabled = true; StatusSynchronizationSource = manager; _adapter = adapter; _manager = manager; ChangeOperationalState(OperationalStateEnum.Operational); return true; }
public void Dispose() { _adapter = null; _dataSourceStub = null; }
public void Dispose() { _adapter = null; _stub = null; }
public void Dispose() { _adapter = null; _manager = null; }