protected void handleUnregister(DataInput in) { GossipData req=readRequest(in, GossipType.UNREGISTER); if(req != null) removeAddressMapping(req.getGroup(), req.getAddress()); }
protected void handleRegister(Address sender, DataInput in) { GossipData req=readRequest(in, GossipType.REGISTER); if(req != null) { String group=req.getGroup(); Address addr=req.getAddress(); PhysicalAddress phys_addr=req.getPhysicalAddress(); String logical_name=req.getLogicalName(); addAddressMapping(sender, group, addr, phys_addr, logical_name); } }
protected void handleGetMembersRequest(Address sender, DataInput in) { GossipData req=readRequest(in, GossipType.GET_MBRS); if(req == null) return; GossipData rsp=new GossipData(GossipType.GET_MBRS_RSP, req.getGroup(), null); Map<Address,Entry> members=address_mappings.get(req.getGroup()); if(members != null) { for(Map.Entry<Address,Entry> entry : members.entrySet()) { Address logical_addr=entry.getKey(); PhysicalAddress phys_addr=entry.getValue().phys_addr; String logical_name=entry.getValue().logical_name; PingData data=new PingData(logical_addr, true, logical_name, phys_addr); rsp.addPingData(data); } } ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(rsp.serializedSize()); try { rsp.writeTo(out); server.send(sender, out.buffer(), 0, out.position()); } catch(Exception ex) { log.error("failed sending %d to %s: %s", GossipType.GET_MBRS_RSP, sender, ex); } }
if((request=readRequest(in, type)) != null) { ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(request.serializedSize()); request.writeTo(out);
protected void handleUnregister(DataInput in) { GossipData req=readRequest(in, GossipType.UNREGISTER); if(req != null) removeAddressMapping(req.getGroup(), req.getAddress()); }
protected void handleRegister(Address sender, DataInput in) { GossipData req=readRequest(in, GossipType.REGISTER); if(req != null) { String group=req.getGroup(); Address addr=req.getAddress(); PhysicalAddress phys_addr=req.getPhysicalAddress(); String logical_name=req.getLogicalName(); addAddressMapping(sender, group, addr, phys_addr, logical_name); } }
protected void handleGetMembersRequest(Address sender, DataInput in) { GossipData req=readRequest(in, GossipType.GET_MBRS); if(req == null) return; GossipData rsp=new GossipData(GossipType.GET_MBRS_RSP, req.getGroup(), null); Map<Address,Entry> members=address_mappings.get(req.getGroup()); if(members != null) { for(Map.Entry<Address,Entry> entry : members.entrySet()) { Address logical_addr=entry.getKey(); PhysicalAddress phys_addr=entry.getValue().phys_addr; String logical_name=entry.getValue().logical_name; PingData data=new PingData(logical_addr, true, logical_name, phys_addr); rsp.addPingData(data); } } ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(rsp.serializedSize()); try { rsp.writeTo(out); server.send(sender, out.buffer(), 0, out.position()); } catch(Exception ex) { log.error("failed sending %d to %s: %s", GossipType.GET_MBRS_RSP, sender, ex); } }
if((request=readRequest(in, type)) != null) { ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(request.serializedSize()); request.writeTo(out);