/** * Adds an entry to the <code>DeletionInfoPacket</code>. If an entry with the same DHT key * exists in the packet already, nothing happens. * @param dhtKey * @param delAuthorization */ public void put(Hash dhtKey, UniqueId delAuthorization) { if (contains(dhtKey)) return; DeletionRecord entry = new DeletionRecord(dhtKey, delAuthorization); entries.add(entry); }
public DeletionInfoPacket(byte[] data) { super(data); entries = new ArrayList<DeletionRecord>(); ByteBuffer buffer = ByteBuffer.wrap(data, HEADER_LENGTH, data.length-HEADER_LENGTH); try { int numEntries = buffer.getInt(); for (int i=0; i<numEntries; i++) { Hash dhtKey = readHash(buffer); UniqueId delAuthentication = new UniqueId(buffer); long storeTime = buffer.getInt() * 1000L; DeletionRecord entry = new DeletionRecord(dhtKey, delAuthentication, storeTime); entries.add(entry); } } catch (BufferUnderflowException e) { log.error("Not enough bytes in packet.", e); } if (buffer.hasRemaining()) log.debug("Extra bytes in Index Packet data."); }