package org.limewire.promotion;
/**
* Provides a mechanism to retrieve {@link PromotionBinder} instances, which may
* be retrieved from the network, cached on disk, or distributed in some other
* manner.
*/
public interface PromotionBinderRepository {
/**
* This is the main way to retrieve a bucket-based binder. This method may
* hit the network, or may pull the content from cache.
*
* @param bucketNumber a 63-bit number, that this factory will take a
* modulus of to determine the real bucket to retrieve.
* @return A promo binder that corresponds to the given bucket number, or
* null if there is no matching bucket (which should be rare).
*/
PromotionBinder getBinderForBucket(long bucketNumber);
/**
* Sets a remote URL to use for search.
*
* @param url the new URL
* @param mod the modulous with which to send the bucket ID
*/
void init(String url, int mod);
}