63 lines
3.0 KiB
Java
63 lines
3.0 KiB
Java
|
package necessary;
|
||
|
|
||
|
import meerkat.protobuf.BulletinBoardAPI.*;
|
||
|
|
||
|
import java.util.List;
|
||
|
|
||
|
/**
|
||
|
* Created by Arbel Deutsch Peled on 14-Dec-15.
|
||
|
*/
|
||
|
public interface AsyncBulletinBoardClient extends BulletinBoardClient {
|
||
|
|
||
|
/**
|
||
|
* Post a message to the bulletin board in an asynchronous manner
|
||
|
* @param msg is the message to be posted
|
||
|
* @param callback is a class containing methods to handle the result of the operation
|
||
|
* @return a unique message ID for the message, that can be later used to retrieve the batch
|
||
|
*/
|
||
|
MessageID postMessage(BulletinBoardMessage msg, ClientCallback<?> callback);
|
||
|
|
||
|
/**
|
||
|
* This method allows for sending large messages as a batch to the bulletin board
|
||
|
* @param signerId is the canonical form for the ID of the sender of this batch
|
||
|
* @param batchId is a unique (per signer) ID for this batch
|
||
|
* @param batchDataList is the (canonically ordered) list of data comprising the batch message
|
||
|
* @param startPosition is the location (in the batch) of the first entry in batchDataList (optionally used to continue interrupted post operations)
|
||
|
* @param callback is a callback function class for handling results of the operation
|
||
|
* @return a unique message ID for the entire message, that can be later used to retrieve the batch
|
||
|
*/
|
||
|
MessageID postBatch(byte[] signerId, int batchId, List<BatchData> batchDataList, int startPosition, ClientCallback<?> callback);
|
||
|
|
||
|
/**
|
||
|
* Overloading of the postBatch method in which startPosition is set to the default value 0
|
||
|
*/
|
||
|
MessageID postBatch(byte[] signerId, int batchId, List<BatchData> batchDataList, ClientCallback<?> callback);
|
||
|
|
||
|
/**
|
||
|
* Check how "safe" a given message is in an asynchronous manner
|
||
|
* The result of the computation is a rank between 0.0 and 1.0 indicating the fraction of servers containing the message
|
||
|
* @param id is the unique message identifier for retrieval
|
||
|
* @param callback is a callback function class for handling results of the operation
|
||
|
*/
|
||
|
void getRedundancy(MessageID id, ClientCallback<Float> callback);
|
||
|
|
||
|
/**
|
||
|
* Read all messages posted matching the given filter in an asynchronous manner
|
||
|
* Note that if messages haven't been "fully posted", this might return a different
|
||
|
* set of messages in different calls. However, messages that are fully posted
|
||
|
* are guaranteed to be included.
|
||
|
* @param filterList return only messages that match the filters (null means no filtering).
|
||
|
* @param callback is a callback function class for handling results of the operation
|
||
|
*/
|
||
|
void readMessages(MessageFilterList filterList, ClientCallback<List<BulletinBoardMessage>> callback);
|
||
|
|
||
|
/**
|
||
|
* Read a given batch message from the bulletin board
|
||
|
* @param signerId is the ID of the signer (sender) of the batch message
|
||
|
* @param batchId is the unique (per signer) ID of the batch
|
||
|
* @param callback is a callback class for handling the result of the operation
|
||
|
*/
|
||
|
void readBatch(byte[] signerId, int batchId, ClientCallback<SignedBatch> callback);
|
||
|
|
||
|
}
|