public override void finished(Ice.ObjectPrx proxy) { if (proxy != null || _proxies.Count == 0) { sendResponse(proxy); } else if (_proxies.Count == 1) { sendResponse(_proxies.First()); } else { List <Ice.Endpoint> endpoints = new List <Ice.Endpoint>(); Ice.ObjectPrx result = null; foreach (Ice.ObjectPrx prx in _proxies) { if (result == null) { result = prx; } endpoints.AddRange(prx.ice_getEndpoints()); } sendResponse(result.ice_endpoints(endpoints.ToArray())); } }
internal Ice.ObjectPrx findAdapter(string adapterId, out bool isReplicaGroup) { lock (this) { Ice.ObjectPrx result = null; if (_adapters.TryGetValue(adapterId, out result)) { isReplicaGroup = false; return(result); } HashSet <string> adapterIds; if (_replicaGroups.TryGetValue(adapterId, out adapterIds)) { List <Ice.Endpoint> endpoints = new List <Ice.Endpoint>(); foreach (string a in adapterIds) { Ice.ObjectPrx proxy; if (!_adapters.TryGetValue(a, out proxy)) { continue; // TODO: Inconsistency } if (result == null) { result = proxy; } endpoints.AddRange(proxy.ice_getEndpoints()); } if (result != null) { isReplicaGroup = true; return(result.ice_endpoints(endpoints.ToArray())); } } isReplicaGroup = false; return(null); } }