
org.frameworkset.remote.RpcDispatcherAnycastServerObject Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bboss-event Show documentation
Show all versions of bboss-event Show documentation
bboss is a j2ee framework include aop/ioc,mvc,persistent,taglib,rpc,event ,bean-xml serializable ,schedle and so on.http://www.bbossgroups.com
The newest version!
package org.frameworkset.remote;
import java.util.ArrayList;
import java.util.List;
import org.frameworkset.event.Event;
import org.jgroups.Address;
import org.jgroups.JChannel;
import org.jgroups.ReceiverAdapter;
import org.jgroups.blocks.RequestOptions;
import org.jgroups.blocks.ResponseMode;
import org.jgroups.blocks.RpcDispatcher;
public class RpcDispatcherAnycastServerObject extends ReceiverAdapter {
private final JChannel c;
private final RpcDispatcher d;
public RpcDispatcherAnycastServerObject(JChannel channel,EventRemoteService eventService) throws Exception {
c=channel;
d=new RpcDispatcher(c, eventService);
d.setMembershipListener(this);
d.setStateListener(this);
}
public void callRemote( boolean excludeSelf,String eventfqn,Event> event) throws Exception {
// we need to copy the vector, otherwise the modification below will throw an exception because the underlying
// vector is unmodifiable
List v=new ArrayList(c.getView().getMembers());
if(excludeSelf)
{
v.remove(c.getAddress());
d.callRemoteMethods(v, "remoteEventChange", new Object[]{}, new Class[]{String.class,Event.class}, new RequestOptions(ResponseMode.GET_NONE, 0));
}
else
{
d.callRemoteMethods(null, "remoteEventChange", new Object[]{}, new Class[]{String.class,Event.class}, new RequestOptions(ResponseMode.GET_NONE, 0));
}
}
public void callRemote( String eventfqn,Event> event) throws Exception {
callRemote( false, eventfqn,event);
}
public void shutdown() {
c.close();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy