Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.infinispan.client.hotrod.impl.transport.tcp;
 
 
Round-robin implementation for RequestBalancingStrategy.

Author(s):
Mircea.Markus@jboss.com
Since:
4.1
   private static final Log log = LogFactory.getLog(RoundRobinBalancingStrategy.class);
   private int index = 0;
   private SocketAddress[] servers;
   @Override
   public void setServers(Collection<SocketAddressservers) {
      this. = servers.toArray(new InetSocketAddress[servers.size()]);
      // keep the old index if possible so that we don't produce more requests for the first server
      if ( >= this..length) {
          = 0;
      }
      if (.isTraceEnabled()) {
         .tracef("New server list is: " + Arrays.toString(this.));
      }
   }

   

Parameters:
failedServers Servers that should not be returned (if any other are available)
   @Override
   public SocketAddress nextServer(Set<SocketAddressfailedServers) {
      boolean isTraceEnabled = .isTraceEnabled();
      for (int i = 0;; ++i) {
         SocketAddress server = getServerByIndex(++);
         // don't allow index to overflow and have a negative value
         if ( >= .)
             = 0;
         if (failedServers == null || !failedServers.contains(server) || i >= failedServers.size()) {
            if (isTraceEnabled) {
               if (failedServers == null)
                  .tracef("Selected %s from %s"server, Arrays.toString());
               else
                  .tracef("Selected %s from %s, with failed servers %s"server, Arrays.toString(), failedServers.toString());
            }
            return server;
         }
      }
   }
   @Override
   public SocketAddress nextServer() {
      return nextServer(null);
   }

   
Returns same value as FailoverRequestBalancingStrategy.nextServer(java.util.Set) without modifying indexes/state.
   public SocketAddress dryRunNextServer() {
      return getServerByIndex();
   }
   private SocketAddress getServerByIndex(int pos) {
      SocketAddress server = [pos];
      if (.isTraceEnabled()) {
         .tracef("Returning server: %s"server);
      }
      return server;
   }
   public SocketAddress[] getServers() {
      return ;
   }
   public int getNextPosition() {
      return ;
   }
New to GrepCode? Check out our FAQ X