package authoritymanager.client;

import tools.DuplicatesSet;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface ServerServiceAsync {
	//void init(AsyncCallback<T>) ;
	
	//void getPrices(FilmRecord fra, FilmRecord frb, AsyncCallback<StockPrice[]> callback);
	//void sendResults()
	void init_server(AsyncCallback<Void> callback);
	void merge(DataPair winner, DataPair loser, AsyncCallback<Void> callback);	
	//void search(String query, AsyncCallback<Vector<SearchResult>> callback);
	void addRecord(Record record, AsyncCallback<Boolean> callback);
	void upload(AsyncCallback<Void> callback);
	void uploadFile(AsyncCallback<Void> callback);
	void fileUpload(AsyncCallback<Void> callback);
	void getConfiguration(AsyncCallback<String> callback);
	void getStatus(AsyncCallback<String> callback) ;	
	void getXML(String fileName, AsyncCallback<String> callback);	
	void login(String username, String date, String password, AsyncCallback<Boolean> callback);
	void insert(String choice, String query, AsyncCallback<Void> callback);
	void register(String username, String password, String access, AsyncCallback<Boolean> callback);
	void getPath(AsyncCallback<String> callback);
	void setDifferent(DataPair data, AsyncCallback<Void> callback);
	void search(String query, AsyncCallback<SearchResults> callback);
	void search(SearchQuery searchQuery, AsyncCallback<SearchResults> callback);
	void getItem(String itemType, String itemID, AsyncCallback<DataSerial> callback);
	void getFile(String fileName, AsyncCallback<String> callback);
	void createID(String itemType, AsyncCallback<String> callback);
	void addRecord(DataSerial dataSerial, AsyncCallback<Boolean> callback);
	void getItem(String itemID, AsyncCallback<DataSerial> callback);
	void getNextCandidate(String pageType, AsyncCallback<Duplicate> callback);
	void getPrevCandidate(String pageType, AsyncCallback<Duplicate> callback);
	void getServerConfiguration(AsyncCallback<String> callback);
	void loadAuthority(String authType, AsyncCallback<Void> callback);
	void loadDuplicates(String authType, AsyncCallback<Void> callback);
	void dumpAuthority(String authType, AsyncCallback<Void> callback);
	void setDifferent(String winnerID, String loserID, AsyncCallback<Void> callback);
	void saveItem(DataSerial dataSerial, AsyncCallback<Void> callback);
	void merge(String winnerID, String loserID, DataSerial winnerRecord, AsyncCallback<Void> callback);
	void getNumberOfCandidates(String itemType, AsyncCallback<Integer> callback);
	void createDuplicates(String authType, AsyncCallback<Void> callback);
}
