// Start a Qos Discovery query public void Start(string fleetId, int discoveryTimeoutSec = 0, Action <QosServer[]> onCompletion = null) { discoveryTimeoutSec = discoveryTimeoutSec > 0 ? discoveryTimeoutSec : k_DefaultDiscoveryTimeoutSec; m_OnCompletion = onCompletion; var fleet = fleetId?.Trim(); if (string.IsNullOrEmpty(fleet)) { throw new ArgumentNullException(nameof(fleetId), $"{nameof(fleetId)} was null or empty; skipping discovery"); } m_Discovery = new QosDiscovery(); m_Discovery.StartDiscovery(fleet, discoveryTimeoutSec, DiscoverySuccess, DiscoveryError); }
// Make a discovery call if requirements are met void PopulateQosServerListFromService() { if (!useQosDiscoveryService) { return; } var fleet = fleetId?.Trim(); // If a fleet is no longer specified, remove the discovery component // Note - This does not remove the last results from the qosServers list if (string.IsNullOrEmpty(fleet)) { throw new ArgumentNullException(nameof(fleetId), "Fleet ID is invalid - Discovery aborted"); } m_Discovery = m_Discovery ?? new QosDiscovery(); if (m_Discovery.State != DiscoveryState.Running) { m_Discovery.StartDiscovery(fleet, discoveryTimeoutSec, DiscoverySuccess, DiscoveryError); } }