Package org.jgroups.blocks

Source Code of org.jgroups.blocks.RpcDispatcherAnycastTestServerObject

package org.jgroups.blocks;

import org.jgroups.MessageListener;
import org.jgroups.MembershipListener;
import org.jgroups.Channel;
import org.jgroups.ChannelException;
import org.jgroups.JChannel;
import org.jgroups.Message;
import org.jgroups.View;
import org.jgroups.Address;
import org.jgroups.util.RspList;
import org.jgroups.util.Rsp;

import java.util.Vector;
import java.util.Map;
import java.util.Iterator;

public class RpcDispatcherAnycastTestServerObject implements MessageListener, MembershipListener
{
   int i = 0;
   private Channel c;
   private RpcDispatcher d;

   public RpcDispatcherAnycastTestServerObject() throws ChannelException
   {
      c = new JChannel();
      c.connect("TEST");
      d = new RpcDispatcher(c, this, this, this);
   }

   public void doSomething()
   {
      System.out.println("doSomething invoked on " + c.getLocalAddress() + ".  i = " + i);
      i++;
      System.out.println("Now i = " + i);
   }

   public void callRemote(boolean useAnycast, boolean excludeSelf)
   {
       // we need to copy the vector, otherwise the modification below will throw an exception because the underlying
       // vector is unmodifiable
      Vector v = new Vector(c.getView().getMembers());
      if (excludeSelf) v.remove(c.getLocalAddress());
      RspList rsps=d.callRemoteMethods(v, "doSomething", new Object[]{}, new Class[]{}, GroupRequest.GET_ALL, 10000, useAnycast);
      Map.Entry entry;
       for(Iterator it=rsps.entrySet().iterator(); it.hasNext();) {
           entry=(Map.Entry)it.next();
           Address member=(Address)entry.getKey();
           Rsp rsp=(Rsp)entry.getValue();
           if(!rsp.wasReceived())
               throw new RuntimeException("response from " + member + " was not received, rsp=" + rsp);
       }

   }

   public void shutdown()
   {
      c.close();
   }


   public void receive(Message msg)
   {
   }

   public byte[] getState()
   {
      return new byte[0];
   }

   public void setState(byte[] state)
   {
   }

   public void viewAccepted(View new_view)
   {
   }

   public void suspect(Address suspected_mbr)
   {
   }

   public void block()
   {
   }
}
TOP

Related Classes of org.jgroups.blocks.RpcDispatcherAnycastTestServerObject

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.