All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.topology.CacheStatusResponse Maven / Gradle / Ivy

There is a newer version: 15.1.0.Dev04
Show newest version
package org.infinispan.topology;

import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import org.infinispan.commons.marshall.AbstractExternalizer;
import org.infinispan.commons.marshall.MarshallUtil;
import org.infinispan.marshall.core.Ids;
import org.infinispan.partitionhandling.AvailabilityMode;
import org.infinispan.remoting.transport.Address;

/**
* @author Dan Berindei
* @since 7.0
*/
public class CacheStatusResponse implements Serializable {

   private static final CacheStatusResponse EMPTY = new CacheStatusResponse(null, null, null, null, null);

   private final CacheJoinInfo cacheJoinInfo;
   private final CacheTopology cacheTopology;
   private final CacheTopology stableTopology;
   private final AvailabilityMode availabilityMode;
   private final List
current; public CacheStatusResponse(CacheJoinInfo cacheJoinInfo, CacheTopology cacheTopology, CacheTopology stableTopology, AvailabilityMode availabilityMode, List
current) { this.cacheJoinInfo = cacheJoinInfo; this.cacheTopology = cacheTopology; this.stableTopology = stableTopology; this.availabilityMode = availabilityMode; this.current = current; } public static CacheStatusResponse empty() { return EMPTY; } public boolean isEmpty() { return cacheJoinInfo == null && cacheTopology == null && stableTopology == null && availabilityMode == null && current == null; } 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; } public List
joinedMembers() { return current; } @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); MarshallUtil.marshallCollection(cacheStatusResponse.current, output); } @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(); List
current = MarshallUtil.unmarshallCollection(unmarshaller, ArrayList::new); return new CacheStatusResponse(cacheJoinInfo, cacheTopology, stableTopology, availabilityMode, current); } @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