org.infinispan.topology.CacheStatusResponse Maven / Gradle / Ivy
package org.infinispan.topology;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.Set;
import org.infinispan.commons.marshall.AbstractExternalizer;
import org.infinispan.marshall.core.Ids;
import org.infinispan.partitionhandling.AvailabilityMode;
/**
* @author Dan Berindei
* @since 7.0
*/
public class CacheStatusResponse implements Serializable {
private final CacheJoinInfo cacheJoinInfo;
private final CacheTopology cacheTopology;
private final CacheTopology stableTopology;
private final AvailabilityMode availabilityMode;
public CacheStatusResponse(CacheJoinInfo cacheJoinInfo, CacheTopology cacheTopology, CacheTopology stableTopology,
AvailabilityMode availabilityMode) {
this.cacheJoinInfo = cacheJoinInfo;
this.cacheTopology = cacheTopology;
this.stableTopology = stableTopology;
this.availabilityMode = availabilityMode;
}
public CacheJoinInfo getCacheJoinInfo() {
return cacheJoinInfo;
}
public CacheTopology getCacheTopology() {
return cacheTopology;
}
/**
* @see org.infinispan.partitionhandling.impl.AvailabilityStrategyContext#getStableTopology()
*/
public CacheTopology getStableTopology() {
return stableTopology;
}
public AvailabilityMode getAvailabilityMode() {
return availabilityMode;
}
@Override
public String toString() {
return "StatusResponse{" +
"cacheJoinInfo=" + cacheJoinInfo +
", cacheTopology=" + cacheTopology +
", stableTopology=" + stableTopology +
'}';
}
public static class Externalizer extends AbstractExternalizer {
@Override
public void writeObject(ObjectOutput output, CacheStatusResponse cacheStatusResponse) throws IOException {
output.writeObject(cacheStatusResponse.cacheJoinInfo);
output.writeObject(cacheStatusResponse.cacheTopology);
output.writeObject(cacheStatusResponse.stableTopology);
output.writeObject(cacheStatusResponse.availabilityMode);
}
@Override
public CacheStatusResponse readObject(ObjectInput unmarshaller) throws IOException, ClassNotFoundException {
CacheJoinInfo cacheJoinInfo = (CacheJoinInfo) unmarshaller.readObject();
CacheTopology cacheTopology = (CacheTopology) unmarshaller.readObject();
CacheTopology stableTopology = (CacheTopology) unmarshaller.readObject();
AvailabilityMode availabilityMode = (AvailabilityMode) unmarshaller.readObject();
return new CacheStatusResponse(cacheJoinInfo, cacheTopology, stableTopology, availabilityMode);
}
@Override
public Integer getId() {
return Ids.CACHE_STATUS_RESPONSE;
}
@Override
public Set> getTypeClasses() {
return Collections.>singleton(CacheStatusResponse.class);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy