package org.infinispan.notifications.cachelistener.event; import java.util.Collection; import org.infinispan.distribution.ch.ConsistentHash; import org.infinispan.notifications.cachelistener.annotation.DataRehashed; import org.infinispan.remoting.transport.Address; /** * An event passed in to methods annotated with {@link DataRehashed}. * * <p>The result of the {@link #getNewTopologyId()} method is not guaranteed to be the same for the "pre" * and the "post" notification, either. However, the "post" value is guaranteed to be greater than or equal to * the "pre" value.</p> * * @author Manik Surtani * @author Dan Berindei * @since 5.0 */ public interface DataRehashedEvent<K, V> extends Event<K, V> { /** * @return Retrieves the list of members before rehashing started. */ Collection<Address> getMembersAtStart(); /** * @return Retrieves the list of members after rehashing ended. */ Collection<Address> getMembersAtEnd(); /** * @return The current consistent hash that was installed prior to the rehash. * It is used both for reading and writing before the rebalance. */ ConsistentHash getConsistentHashAtStart(); /** * @return The consistent hash that will be installed after the rebalance. * It will be used both for reading and writing once the rebalance is complete. */ ConsistentHash getConsistentHashAtEnd(); /** * @return The union of the current and future consistent hashes. * * @deprecated Since 9.0 */ @Deprecated ConsistentHash getUnionConsistentHash(); /** * @return Retrieves the new topology id after rehashing was triggered. */ int getNewTopologyId(); }