package com.l7tech.server.cluster;

import com.l7tech.gateway.common.cluster.ClusterNodeInfo;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.UpdateException;
import java.util.Collection;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public interface ClusterInfoManager {
   String thisNodeId();

   void updateSelfStatus(double var1) throws UpdateException;

   void updateSelfStatus(ClusterNodeInfo var1) throws UpdateException;

   String deleteNode(String var1) throws DeleteException;

   void removeStaleNodes(long var1);

   String renameNode(String var1, String var2) throws UpdateException;

   void updateSelfUptime() throws UpdateException;

   @Transactional(readOnly = true)
   Collection<ClusterNodeInfo> retrieveClusterStatus() throws FindException;

   ClusterNodeInfo getSelfNodeInf();

   ClusterNodeInfo getSelfNodeInf(boolean var1);

   boolean attemptClusterFirstMulticastAddressUpdate(String var1, String var2) throws UpdateException;
}
