package org.limewire.core.api.search; import java.util.List; import org.limewire.io.GUID; /** * Defines the API for the search manager. */ public interface SearchManager { /** * Adds the specified search to the manager and returns its result list. * A monitored search will be automatically cancelled if no attempt is * made to reference its result list for a period of time. * * <p>This method should be called before starting the search; otherwise, the * result list may not contain results generated before the list was * created.</p> */ SearchResultList addMonitoredSearch(Search search, SearchDetails searchDetails); /** * Adds the specified search to the manager and returns its result list. * The search will remain alive until it is explicitly stopped. * * <p>This method should be called before starting the search; otherwise, the * result list may not contain results generated before the list was * created.</p> */ SearchResultList addSearch(Search search, SearchDetails searchDetails); /** * Removes the specified search from the manager. This method should be * called after stopping a search to dispose of resources. */ void removeSearch(Search search); /** * Stops the search associated with the specified result list, and removes * the search from the manager. */ void stopSearch(SearchResultList resultList); /** * Returns a list of active searches. An active search has been assigned * a GUID, which includes network searches started but excludes unstarted * searches and browse searches. */ List<SearchResultList> getActiveSearchLists(); /** * Returns the result list for the specified GUID. The method returns null * if there is no list associated with the GUID. */ SearchResultList getSearchResultList(GUID guid); /** * Returns the result list for the specified search. The method returns * null if there is no list associated with the search. */ SearchResultList getSearchResultList(Search search); }