protected void findMembers(List<Address> members, boolean initial_discovery, Responses rsps, boolean async) { for(Discovery discovery_protocol: discovery_protocols) { discovery_protocol.addResponse(rsps); if(async || async_discovery) timer.execute(() -> discovery_protocol.findMembers(members, initial_discovery, rsps)); else discovery_protocol.findMembers(members, initial_discovery, rsps); } }
protected void handleDiscoveryResponse(PingData data, Address sender) { // add physical address (if available) to transport's cache Address logical_addr=data.getAddress() != null? data.getAddress() : sender; addDiscoveryResponseToCaches(logical_addr, data.getLogicalName(), data.getPhysicalAddr()); boolean overwrite=Objects.equals(logical_addr, sender); addResponse(data, overwrite); }
public Responses findMembers(final List<Address> members, final boolean initial_discovery, boolean async, long timeout) { num_discovery_requests++; int num_expected=members != null? members.size() : 0; int capacity=members != null? members.size() : 16; Responses rsps=new Responses(num_expected, initial_discovery && break_on_coord_rsp, capacity); addResponse(rsps); if(async || async_discovery || (num_discovery_runs > 1) && initial_discovery) { timer.execute(() -> invokeFindMembers(members, initial_discovery, rsps, async)); if(num_discovery_runs > 1 && initial_discovery) { int num_reqs_to_send=num_discovery_runs-1; long last_send=timeout - (timeout/num_discovery_runs); long interval=last_send/num_reqs_to_send; for(long i=0,delay=interval; i < num_reqs_to_send; i++,delay+=interval) { Future<?> future=timer.schedule(() -> invokeFindMembers(members, initial_discovery, rsps, async), delay, TimeUnit.MILLISECONDS); this.discovery_req_futures.add(future); num_discovery_requests++; } } } else invokeFindMembers(members, initial_discovery, rsps, async); weedOutCompletedDiscoveryResponses(); return rsps; }
addDiscoveryResponseToCaches(logical_addr, data.getLogicalName(), data.getPhysicalAddr()); discoveryRequestReceived(msg.getSrc(), data.getLogicalName(), data.getPhysicalAddr()); addResponse(data, false);
protected void findMembers(List<Address> members, boolean initial_discovery, Responses rsps, boolean async) { for(Discovery discovery_protocol: discovery_protocols) { discovery_protocol.addResponse(rsps); if(async || async_discovery) timer.execute(() -> discovery_protocol.findMembers(members, initial_discovery, rsps)); else discovery_protocol.findMembers(members, initial_discovery, rsps); } }
protected void handleDiscoveryResponse(PingData data, Address sender) { // add physical address (if available) to transport's cache Address logical_addr=data.getAddress() != null? data.getAddress() : sender; addDiscoveryResponseToCaches(logical_addr, data.getLogicalName(), data.getPhysicalAddr()); boolean overwrite=Objects.equals(logical_addr, sender); addResponse(data, overwrite); }
addDiscoveryResponseToCaches(logical_addr, data.getLogicalName(), data.getPhysicalAddr()); discoveryRequestReceived(msg.getSrc(), data.getLogicalName(), data.getPhysicalAddr()); addResponse(data, false);