package org.commcare.network;
import org.commcare.interfaces.HttpRequestEndpoints;
import org.commcare.tasks.DataPullTask;
import java.io.IOException;
/**
* Delegates data pulling requests to allow for modularity in data sources
*
* @author Phillip Mates (pmates@dimagi.com).
*/
public interface DataPullRequester {
/**
* Makes a data pulling request and returns an object for locally caching
* the response data.
*
* @param task For reporting data download progress
* @param requestor For making the data pulling request
* @param server Address of the request target
* @param includeSyncToken Add sync token to the request
* @return Instance to handle the response data
*/
RemoteDataPullResponse makeDataPullRequest(DataPullTask task,
HttpRequestEndpoints requestor,
String server,
boolean includeSyncToken) throws IOException;
HttpRequestEndpoints getHttpGenerator(String username, String password, String userId);
}