public void Dispose() { if (m_Mgr != null) { m_Mgr.Dispose(); m_Mgr = null; } if (m_DBMgr != null) { m_DBMgr.Dispose(); m_DBMgr = null; } if (m_PumpMgr != null) { m_PumpMgr.Dispose(); m_PumpMgr = null; } if (m_PumpMgrEx != null) { m_PumpMgrEx.Dispose(); m_PumpMgrEx = null; } if (m_factory != null) { //m_factory.Dispose(); m_factory = null; } }
//==================================================================== void ReleasePumpManagerEx() { if (m_PumpMgrEx != null) { if (m_PumpMgrEx.IsConnected()) { m_PumpMgrEx.Disconnect(); } m_PumpMgrEx.Dispose(); } m_PumpMgrEx = null; }
//==================================================================== void ReleasePumpManager() { if (m_PumpMgr != null) { if (m_PumpMgr.IsConnected()) { m_PumpMgr.Disconnect(); } m_PumpMgr.Dispose(); } m_PumpMgr = null; }
public ReturnCode CheckConnection(WorkerExecutionContext executionContext, bool pump = false) { // Check connection bool shouldConnect; if (_api == null) { _api = _mt4Manager.CreateApi(); shouldConnect = true; } else { shouldConnect = Ping() != ReturnCode.RET_OK; } // Connect if (shouldConnect) { var code = ConnectAndLogin(); if (code != ReturnCode.RET_OK) { executionContext.ContinuationDelay = ReconnectDelay; return(code); } } if (pump && !_isPumpEnabled) { var code = RefreshSymbols(executionContext.CancellationToken); if (code != ReturnCode.RET_OK) { LogError("Unable to enable pump because unable refresh symbols", code); return(code); } code = Api.PumpingSwitchEx(OnPumpEx, 0); if (code != ReturnCode.RET_OK) { LogError("Unable to enable pump because 'PumpingSwitchEx' method fails", code); return(code); } _isPumpEnabled = true; } return(ReturnCode.RET_OK); }
public ManagerAPI(CManagerFactory factory) { m_factory = factory ?? throw new ArgumentNullException(nameof(factory)); if (m_factory.IsValid() == false || (m_PumpMgr = m_factory.Create()) == null || (m_Mgr = m_factory.Create()) == null || (m_PumpMgrEx = m_factory.Create()) == null) { m_isValid = false; return; } m_isValid = true; Debug.Assert(m_isValid); }
public void createDBMT4Manager() { Debug.Assert(m_DBMgr == null); m_DBMgr = m_factory.Create(); }
public void Dispose() { _api?.Dispose(); _api = null; }