void CEngineContainer::CallSymbolEnginesToUpdateSymbolsIfNecessary() { p_betround_calculator->OnNewHeartbeat(); p_handreset_detector->OnNewHeartbeat(); // table-limits depend on betround p_tablelimits->CalcTableLimits(); // ResetOnConnection() gets directly called by the auto-connector, // so we don't have to care about that. // We only need to care about: // * ResetOnHandreset() // * ResetOnNewRound() // * ResetOnMyTurn() if (p_handreset_detector->IsHandreset()) { ResetOnHandreset(); } if (p_betround_calculator->IsNewBetround()) { ResetOnNewRound(); } if (p_scraper_access->IsMyTurn()) { ResetOnMyTurn(); } // And finally ResetOnHeartbeat() gets always called. ResetOnHeartbeat(); }
void CEngineContainer::EvaluateAll() { write_log(preferences.debug_engine_container(), "[EngineContainer] EvaluateAll()\n"); if (!_reset_on_connection_executed) { write_log(preferences.debug_engine_container(), "[EngineContainer] Skipping as ResetOnConnection not yet executed.\n"); write_log(preferences.debug_engine_container(), "[EngineContainer] Waiting for call by auto-connector-thread\n"); // The problem with ResetOnConnection: // It will be called by another thread, // so the execution might be out of order. // Therefore we have to skip all other calculations // until OnConnection() got executed. return; } if (p_formula_parser == NULL) { // No formula loaded return; } if (p_formula_parser->IsParsing()) { // Not safe to evaluate anything return; } p_betround_calculator->OnNewHeartbeat(); p_handreset_detector->OnNewHeartbeat(); // table-limits depend on betround p_symbol_engine_tablelimits->CalcTableLimits(); // ResetOnConnection() gets directly called by the auto-connector, // so we don't have to care about that. // We only need to care about: // * ResetOnHandreset() // * ResetOnNewRound() // * ResetOnMyTurn() if (p_handreset_detector->IsHandreset()) { ResetOnHandreset(); } if (p_betround_calculator->IsNewBetround()) { ResetOnNewRound(); } if (p_scraper_access->IsMyTurn()) { ResetOnMyTurn(); } // And finally ResetOnHeartbeat() gets always called. ResetOnHeartbeat(); }
void CSymbolEngineTableLimits::CalcTableLimits() { write_log(preferences.debug_table_limits(), "[CSymbolEngineTableLimits] CalcTableLimits()\n"); ResetOnHeartbeat(); }