package org.infinispan.xsite.statetransfer;
/**
* It contains the logic needed to consume the state sent from other site.
*
* @author Pedro Ruivo
* @since 7.0
*/
public interface XSiteStateConsumer {
/**
* It notifies the start of state transfer from other site.
*
* @param sendingSite the site name that will send the state.
* @throws org.infinispan.commons.CacheException if this node is received state from a different site name.
*/
void startStateTransfer(String sendingSite);
/**
* It notifies the end of state transfer from other site.
*
* @param sendingSite the site name that is sending the state.
*/
void endStateTransfer(String sendingSite);
/**
* It applies state from other site.
*
* @param chunk a chunk of keys
* @throws Exception if something go wrong while applying the state
*/
void applyState(XSiteState[] chunk) throws Exception;
/**
* @return the site name that is sending the state.
*/
String getSendingSiteName();
}