package project.client.rpc;
import java.util.List;
import java.util.Map;
import project.client.persistence.Message;
import project.client.persistence.MessageThread;
import project.client.persistence.User;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface RpcInterfaceAsync {
/*
* ----------- Crawler specific functionality --------------
*/
/**
* Insert new settings for crawling
* @param name
* @param crawlerClass
* @param threadClass
* @param baseUrl
* @return
*/
public void insertCrawlerSettings (String name,
String crawlerClass,
String threadClass,
String baseUrl,
AsyncCallback<String> callback);
/**
*
* @param name
* @return
*/
public void getCrawlerSettings (String name, AsyncCallback<Map<String,Map<String,String>>> callback);
/**
* Insert a new crawler
* @param name
* @param url
* @param crawlerType
* @param startPage
* @param endPage
* @param sleepPerThread
* @param sleepPerPage
* @param roundRobin
* @param startNow
* @return
*/
public void insertCrawler (String name,
String url,
String crawlerType,
int startPage, int endPage,
String sleepPerThread, String sleepPerPage,
boolean roundRobin, boolean startNow,
AsyncCallback<String> callback);
/**
* Update an existing crawler (uniquely identified by its name)
* @param name
* @param url
* @param crawlerType
* @param startPage
* @param endPage
* @param sleepPerThread
* @param sleepPerPage
* @return
*/
public void updateCrawler (String name,
String url,
String crawlerType,
int startPage,
int endPage,
String sleepPerThread, String sleepPerPage,
AsyncCallback<String> callback);
/**
* Get all crawlers and their settings, or just one crawler if
* {@link #name} is not null
* @param name The name of the crawler
* @return
*/
public void getCrawlers (String name, AsyncCallback<Map<String,Map<String,String>>> callback);
/**
* Retrieve the list of crawlers for a message board
* @param url
* @return
*/
public void getCrawlersByUrl (String url,AsyncCallback<Map<String,Map<String,String>>> callback);
/**
* Retrieve the list of crawlers by type
* @param type
* @return
*/
public void getCrawlersByType (String type,AsyncCallback<Map<String,Map<String,String>>> callback);
/**
* Start / pause a crawler
* @param name The name of the crawler
* @param start
*/
public void activateCrawler (String name, boolean start,AsyncCallback<String> callback);
/*
* ----------------- Statistics related functionality -----------------
*/
/**
* Retrieve statistics for forums
* @param boardName The name of the board, or null for general statistics
*/
public void getStatistics (String boardName,AsyncCallback<Map<String,String>> callback);
/**
* Calculate the social network and retrieve its statistics
* @param boardName
* @return
*/
public void getSocialStatistics (String boardName,AsyncCallback<Map<String,String>> callback);
/**
* Calculate statistics for a single user
* @param userName
* @return
*/
public void getUserSocialStatistics (String userName, AsyncCallback<Map<String,String>> callback);
/*
* ------------------- Search related functionality -------------------
*/
/**
* Search for messages
* @param keywords
* @param limit
* @return
*/
public void search (String[] keywords, int limit,boolean lookUsers, AsyncCallback<List<Message>> callback);
public void searchForThread (String thread, AsyncCallback<List<Message>> callback);
/**
* Retrieves the used of a message
* @param messageId
* @return
*/
public void getMessageUser (int messageId,AsyncCallback<User> callback);
/**
* Retrieve the thread of the message
* @param messageId
* @return
*/
public void getMessageThread (int messageId,AsyncCallback<MessageThread> callback);
/**
* Retrieve a list of similar messages
* @param messageId
* @param limit
* @return
*/
public void getSimilarMessages (int messageId, int limit,AsyncCallback<List<Message>> callback);
/**
* Retrieve the list of messages in a thread
* @param threadId
* @return
*/
public void getThreadMessages (int threadId,AsyncCallback<List<Message>> callback);
}