/* This code is part of Freenet. It is distributed under the GNU General * Public License, version 2 (or at your option any later version). See * http://www.gnu.org/ for further details of the GPL. */ package freenet.client.async; import java.util.Set; import freenet.keys.ClientKey; import freenet.keys.ClientKeyBlock; import freenet.keys.Key; import freenet.keys.KeyBlock; /** * A set of KeyBlock's. * @author toad */ public interface BlockSet { /** * Get a block by its key. * @param key The key of the block to get. * @return A block, or null if there is no block with that key. */ public KeyBlock get(Key key); /** * Add a block. * @param block The block to add. */ public void add(KeyBlock block); /** * Get the set of all the keys of all the blocks. * @return A set of the keys of the blocks in the BlockSet. Not guaranteed to be * kept up to date. Read only. */ public Set<Key> keys(); /** Get a high level block, given a high level key */ public ClientKeyBlock get(ClientKey key); }