private void removeAddrIndex(Jedis j, Registration registration) { byte[] regAddrKey = toRegAddrKey(registration.getSocketAddress()); byte[] epFromAddr = j.get(regAddrKey); if (Arrays.equals(epFromAddr, registration.getEndpoint().getBytes(UTF_8))) { j.del(regAddrKey); } }
private void removeAddrIndex(Jedis j, Registration registration) { byte[] regAddrKey = toRegAddrKey(registration.getSocketAddress()); byte[] epFromAddr = j.get(regAddrKey); if (Arrays.equals(epFromAddr, registration.getEndpoint().getBytes(UTF_8))) { j.del(regAddrKey); } }
@Override public UpdatedRegistration updateRegistration(RegistrationUpdate update) { try { lock.writeLock().lock(); Registration registration = getRegistration(update.getRegistrationId()); if (registration == null) { return null; } else { Registration updatedRegistration = update.update(registration); regsByEp.put(updatedRegistration.getEndpoint(), updatedRegistration); // If registration is already associated to this address we don't care as we only want to keep the most // recent binding. regsByAddr.put(updatedRegistration.getSocketAddress(), updatedRegistration); if (!registration.getSocketAddress().equals(updatedRegistration.getSocketAddress())) { removeFromMap(regsByAddr, registration.getSocketAddress(), registration); } regsByRegId.put(updatedRegistration.getId(), updatedRegistration); return new UpdatedRegistration(registration, updatedRegistration); } } finally { lock.writeLock().unlock(); } }
@Override public Deregistration addRegistration(Registration registration) { try { lock.writeLock().lock(); Registration registrationRemoved = regsByEp.put(registration.getEndpoint(), registration); regsByRegId.put(registration.getId(), registration); // If a registration is already associated to this address we don't care as we only want to keep the most // recent binding. regsByAddr.put(registration.getSocketAddress(), registration); if (registrationRemoved != null) { Collection<Observation> observationsRemoved = unsafeRemoveAllObservations(registrationRemoved.getId()); if (!registrationRemoved.getSocketAddress().equals(registration.getSocketAddress())) { removeFromMap(regsByAddr, registrationRemoved.getSocketAddress(), registrationRemoved); } if (!registrationRemoved.getId().equals(registration.getId())) { removeFromMap(regsByRegId, registrationRemoved.getId(), registrationRemoved); } return new Deregistration(registrationRemoved, observationsRemoved); } } finally { lock.writeLock().unlock(); } return null; }
@Override public Deregistration removeRegistration(String registrationId) { try { lock.writeLock().lock(); Registration registration = getRegistration(registrationId); if (registration != null) { Collection<Observation> observationsRemoved = unsafeRemoveAllObservations(registration.getId()); regsByEp.remove(registration.getEndpoint()); removeFromMap(regsByAddr, registration.getSocketAddress(), registration); removeFromMap(regsByRegId, registration.getId(), registration); return new Deregistration(registration, observationsRemoved); } return null; } finally { lock.writeLock().unlock(); } }
byte[] addr_idx = toRegAddrKey(updatedRegistration.getSocketAddress()); j.set(addr_idx, updatedRegistration.getEndpoint().getBytes(UTF_8)); if (!r.getSocketAddress().equals(updatedRegistration.getSocketAddress())) { removeAddrIndex(j, r);
byte[] addr_idx = toRegAddrKey(updatedRegistration.getSocketAddress()); j.set(addr_idx, updatedRegistration.getEndpoint().getBytes(UTF_8)); if (!r.getSocketAddress().equals(updatedRegistration.getSocketAddress())) { removeAddrIndex(j, r);
byte[] addr_idx = toRegAddrKey(registration.getSocketAddress()); j.set(addr_idx, registration.getEndpoint().getBytes(UTF_8)); if (!oldRegistration.getSocketAddress().equals(registration.getSocketAddress())) { removeAddrIndex(j, oldRegistration);
byte[] addr_idx = toRegAddrKey(registration.getSocketAddress()); j.set(addr_idx, registration.getEndpoint().getBytes(UTF_8)); if (!oldRegistration.getSocketAddress().equals(registration.getSocketAddress())) { removeAddrIndex(j, oldRegistration);