public class MERGE2 extends Protocol
This protocol works as follows:
Requires: FIND_INITIAL_MBRS event from below
Provides: sends MERGE event with list of coordinators up the stack
Modifier and Type | Class and Description |
---|---|
protected class |
MERGE2.FindSubgroupsTask
Task periodically executing (if role is coordinator).
|
Modifier and Type | Field and Description |
---|---|
protected int |
inconsistent_view_threshold |
protected boolean |
is_coord |
protected Address |
local_addr |
protected long |
max_interval |
protected Set<Address> |
members |
protected Set<Address> |
merge_candidates |
protected boolean |
merge_fast |
protected long |
merge_fast_delay |
protected long |
min_interval |
protected int |
num_inconsistent_views |
protected int |
num_merge_events |
protected MERGE2.FindSubgroupsTask |
task |
protected TimeScheduler |
timer |
protected View |
view |
Constructor and Description |
---|
MERGE2() |
Modifier and Type | Method and Description |
---|---|
Object |
down(Event evt)
An event is to be sent down the stack.
|
long |
getMaxInterval() |
long |
getMinInterval() |
void |
init()
Called after instance has been created (null constructor) and before protocol is started.
|
protected boolean |
isMergeRunning() |
boolean |
isMergeTaskRunning() |
List<Integer> |
requiredDownServices()
List of events that are required to be answered by some layer below.
|
void |
sendMergeSolicitation()
Discovers members and detects whether we have multiple coordinator.
|
void |
setMaxInterval(long l) |
void |
setMinInterval(long i) |
void |
startMergeTask() |
void |
stop()
This method is called on a
Channel.disconnect() . |
void |
stopMergeTask() |
Object |
up(Event evt)
An event was received from the layer below.
|
destroy, dumpStats, enableStats, getConfigurableObjects, getDownProtocol, getId, getLevel, getName, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getValue, isErgonomics, printStats, providedDownServices, providedUpServices, requiredUpServices, resetStatistics, resetStats, setDownProtocol, setErgonomics, setId, setLevel, setProtocolStack, setSocketFactory, setUpProtocol, setValue, setValues, start, statsEnabled
protected long min_interval
protected long max_interval
protected int inconsistent_view_threshold
protected boolean merge_fast
protected long merge_fast_delay
protected Address local_addr
protected View view
protected final MERGE2.FindSubgroupsTask task
protected volatile boolean is_coord
protected TimeScheduler timer
protected int num_inconsistent_views
protected int num_merge_events
public boolean isMergeTaskRunning()
public void init() throws Exception
Protocol
public long getMinInterval()
public void setMinInterval(long i)
public long getMaxInterval()
public void setMaxInterval(long l)
protected boolean isMergeRunning()
public List<Integer> requiredDownServices()
Protocol
requiredDownServices
in class Protocol
public void sendMergeSolicitation()
public void startMergeTask()
public void stopMergeTask()
public void stop()
Protocol
Channel.disconnect()
. Stops work (e.g. by closing multicast socket).
Will be called from top to bottom. This means that at the time of the method invocation the
neighbor protocol below is still working. This method will replace the
STOP, STOP_OK, CLEANUP and CLEANUP_OK events. The ProtocolStack guarantees that
when this method is called all messages in the down queue will have been flushedpublic Object down(Event evt)
Protocol
down_prot.down()
. In case of a GET_ADDRESS event (which tries to
retrieve the stack's address from one of the bottom layers), the layer may need to send
a new response event back up the stack using up_prot.up()
.public Object up(Event evt)
Protocol
down_prot.down()
or c) the event (or another event) is sent up
the stack using up_prot.up()
.Copyright © 2012 JBoss by Red Hat. All Rights Reserved.