package freenet.node; import freenet.client.async.ClientContext; import freenet.keys.Key; /** * WARNING: Changing non-transient members on classes that are Serializable can result in * restarting downloads or losing uploads. (Some children of this class are actually stored) * @author toad */ public abstract class BaseSendableGet extends SendableRequest { private static final long serialVersionUID = 1L; protected BaseSendableGet(boolean persistent, boolean realTimeFlag) { super(persistent, realTimeFlag); } /** Get a numbered key to fetch. */ public abstract Key getNodeKey(SendableRequestItem token); /** Called after checking the datastore and before registering the request to be * sent. Some gets may want to cancel here, some may want to send an event to FCP. * @param toNetwork If true, we are actually going to send requests (unless we * cancel in this callback). If false, we completed all the work assigned. * @return True to cancel the request at this stage i.e. not go to network, * in which case *the BSG must handle the failure itself*. */ public abstract boolean preRegister(ClientContext context, boolean toNetwork); }