Package org.jgroups.stack
Class RouterStubManager
- java.lang.Object
-
- org.jgroups.stack.RouterStubManager
-
- All Implemented Interfaces:
java.lang.Runnable,RouterStub.CloseListener
public class RouterStubManager extends java.lang.Object implements java.lang.Runnable, RouterStub.CloseListener
Manages a list of RouterStubs (e.g. health checking, reconnecting etc.- Author:
- Vladimir Blagojevic, Bela Ban
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classRouterStubManager.Target
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Stringcluster_nameprotected longintervalprotected Addresslocal_addrprotected Loglogprotected java.lang.Stringlogical_nameprotected Protocolownerprotected PhysicalAddressphys_addrprotected java.util.Set<RouterStubManager.Target>reconnect_listprotected java.util.concurrent.Future<?>reconnector_taskprotected java.util.List<RouterStub>stubsprotected TimeSchedulertimerprotected booleanuse_nio
-
Constructor Summary
Constructors Constructor Description RouterStubManager(Protocol owner, java.lang.String cluster_name, Address local_addr, java.lang.String logical_name, PhysicalAddress phys_addr, long interval)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanadd(RouterStub stub)protected booleanadd(RouterStubManager.Target target)voidclosed(RouterStub stub)protected intconnectedStubs()voidconnectStubs()RouterStubcreateAndRegisterStub(IpAddress local, IpAddress router_addr)voiddestroyStubs()voiddisconnectStubs()static RouterStubManageremptyGossipClientStubManager(Protocol p)protected RouterStubfind(IpAddress router_addr)protected RouterStubfindRandomConnectedStub()voidforAny(java.util.function.Consumer<RouterStub> action)Applies action to a randomly picked RouterStub that's connectedvoidforEach(java.util.function.Consumer<RouterStub> action)Applies action to all RouterStubs that are connectedprotected voidmoveStubToReconnects(RouterStub stub)java.lang.Stringprint()java.lang.StringprintReconnectList()java.lang.StringprintStubs()protected booleanreconnect(RouterStubManager.Target target)protected booleanremove(RouterStub stub)protected booleanremove(RouterStubManager.Target target)voidrun()RouterStubManagersocketFactory(SocketFactory socket_factory)protected voidstartReconnector()protected voidstopReconnector()RouterStubunregisterStub(IpAddress router_addr)RouterStubManageruseNio(boolean flag)
-
-
-
Field Detail
-
stubs
protected final java.util.List<RouterStub> stubs
-
reconnect_list
protected final java.util.Set<RouterStubManager.Target> reconnect_list
-
owner
protected final Protocol owner
-
timer
protected final TimeScheduler timer
-
cluster_name
protected final java.lang.String cluster_name
-
local_addr
protected final Address local_addr
-
logical_name
protected final java.lang.String logical_name
-
phys_addr
protected final PhysicalAddress phys_addr
-
interval
protected final long interval
-
use_nio
protected boolean use_nio
-
reconnector_task
protected java.util.concurrent.Future<?> reconnector_task
-
log
protected final Log log
-
-
Constructor Detail
-
RouterStubManager
public RouterStubManager(Protocol owner, java.lang.String cluster_name, Address local_addr, java.lang.String logical_name, PhysicalAddress phys_addr, long interval)
-
-
Method Detail
-
emptyGossipClientStubManager
public static RouterStubManager emptyGossipClientStubManager(Protocol p)
-
useNio
public RouterStubManager useNio(boolean flag)
-
forEach
public void forEach(java.util.function.Consumer<RouterStub> action)
Applies action to all RouterStubs that are connected- Parameters:
action-
-
forAny
public void forAny(java.util.function.Consumer<RouterStub> action)
Applies action to a randomly picked RouterStub that's connected- Parameters:
action-
-
createAndRegisterStub
public RouterStub createAndRegisterStub(IpAddress local, IpAddress router_addr)
-
unregisterStub
public RouterStub unregisterStub(IpAddress router_addr)
-
connectStubs
public void connectStubs()
-
disconnectStubs
public void disconnectStubs()
-
destroyStubs
public void destroyStubs()
-
printStubs
public java.lang.String printStubs()
-
printReconnectList
public java.lang.String printReconnectList()
-
print
public java.lang.String print()
-
run
public void run()
- Specified by:
runin interfacejava.lang.Runnable
-
closed
public void closed(RouterStub stub)
- Specified by:
closedin interfaceRouterStub.CloseListener
-
reconnect
protected boolean reconnect(RouterStubManager.Target target)
-
moveStubToReconnects
protected void moveStubToReconnects(RouterStub stub)
-
add
protected boolean add(RouterStub stub)
-
add
protected boolean add(RouterStubManager.Target target)
-
remove
protected boolean remove(RouterStub stub)
-
remove
protected boolean remove(RouterStubManager.Target target)
-
find
protected RouterStub find(IpAddress router_addr)
-
findRandomConnectedStub
protected RouterStub findRandomConnectedStub()
-
connectedStubs
protected int connectedStubs()
-
startReconnector
protected void startReconnector()
-
stopReconnector
protected void stopReconnector()
-
socketFactory
public RouterStubManager socketFactory(SocketFactory socket_factory)
-
-