|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectgroupmgmt.GroupManager
The Group Manager;
Built for use in LIME 1.1;
Maintains local information about the group that the current host
is a part of (list of members).
Can be switched on and off by the controlling class.
Controls the MemberDetector -
Detects new/stopping members & dropped connections.
and the GroupDisseminator -
Effects changes in the group based on data from the Detector.
Nested Class Summary | |
private static class |
GroupManager.TestFrame
## Private GUI class used for testing. |
Field Summary | |
private boolean |
debugging
Determines whether to output log messages. |
private MemberDetector |
detector
The MemberDetector determines when a connection with another member should be initiated or closed. |
private GroupDisseminator |
disseminator
The GroupDisseminator handles the formation of new groups based on info from the MemberDetector. |
private java.util.Vector |
groupChangedListeners
A list of all GroupChangedListeners that are registered to receive GroupChangedEvents from this GroupDisseminator. |
private static Member |
me
Reference to my Member object (for identification). |
private java.util.Vector |
members
The members of the group I'm in (including me). |
private GroupChangedEvent |
pendingUpdate
The GroupChangedEvent waiting to be sent out. |
private boolean |
sendSelfEngagement
Set to determine whether the calling class will receive GroupChangedEvents representing self-engagement (ie right after the GroupManager starts up). |
private boolean |
suppressUpdates
Allows the calling class to temporarily suppress GroupChangedEvents. |
Constructor Summary | |
GroupManager(int groupmgmtPort,
MemberDetector detector,
GroupDisseminator disseminator,
boolean sendSelfEngagement)
Constructor, initializes the GroupManager with the provided MemberDetector and GroupDisseminator. |
Method Summary | |
void |
addGroupChangedListener(GroupChangedListener listener)
Registers a GroupChangedListener to receive all GroupChangedEvents generated by this GroupDisseminator. |
void |
connect()
Turn the GroupManager on. |
void |
disconnect()
Turn the GroupManager off. |
private void |
fireGroupChangedEvent(GroupChangedEvent event)
Sends a GroupChangedEvent to all registered listeners. |
MemberDetector |
getDetector()
Accessor to get the MemberDetector. |
GroupDisseminator |
getDisseminator()
Accessor to get the GroupDisseminator. |
static Member |
getMember()
Static accessor for Detectors/Disseminators to get a Member object representing this group member. |
void |
groupChanged(GroupChangedEvent event)
Method required by the GroupChangedListener interface. |
private void |
log(java.lang.String msg)
Private utility message to log debugging output from the GroupManager. |
static void |
main(java.lang.String[] args)
## Main method just for testing on the command-line. |
static void |
print(java.lang.String msg)
Static utility method to log output from any groupmgmt class. |
void |
removeGroupChangedListener(GroupChangedListener listener)
Unregisters a GroupChangedListener, stops sending GroupChangedEvents to the listener. |
void |
resumeUpdates()
Resume sending GroupChangedEvents to the listeners. |
void |
setDebug(boolean debugging)
Determine whether to output logging messages. |
boolean |
setDetector(MemberDetector newDetector)
Change the MemberDetector. |
boolean |
setDisseminator(GroupDisseminator newDisseminator)
Change the GroupDisseminator and tell the MemberDetector. |
private static void |
setMember(Member member)
Private static helper method to store the member object of this group member. |
void |
suppressUpdates()
Allows the calling class to tell us to temporarily stop sending GroupChangedEvents. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private MemberDetector detector
private GroupDisseminator disseminator
private java.util.Vector members
private java.util.Vector groupChangedListeners
private boolean suppressUpdates
private GroupChangedEvent pendingUpdate
private boolean sendSelfEngagement
private static Member me
private boolean debugging
Constructor Detail |
public GroupManager(int groupmgmtPort, MemberDetector detector, GroupDisseminator disseminator, boolean sendSelfEngagement)
groupmgmtPort
- The port to use to identify this group member.detector
- The MemberDetector to use.disseminator
- The GroupDisseminator to use.sendSelfEngagement
- Whether to fire a GroupChangedEvent
when the Member engages with itself.Method Detail |
public void setDebug(boolean debugging)
debugging
- Outputs messages if true.public void connect()
public void disconnect()
public void suppressUpdates()
public void resumeUpdates()
private static void setMember(Member member)
member
- The member object.public static Member getMember()
public MemberDetector getDetector()
public boolean setDetector(MemberDetector newDetector)
public GroupDisseminator getDisseminator()
public boolean setDisseminator(GroupDisseminator newDisseminator)
public void groupChanged(GroupChangedEvent event)
groupChanged
in interface GroupChangedListener
public void addGroupChangedListener(GroupChangedListener listener)
listener
- The GroupChangedListener to receive events.public void removeGroupChangedListener(GroupChangedListener listener)
listener
- The GroupChangedListener to stop receiving events.private void fireGroupChangedEvent(GroupChangedEvent event)
event
- The GroupChangedEvent to send.private void log(java.lang.String msg)
msg
- The message to display.public static void print(java.lang.String msg)
msg
- The message to display.public static void main(java.lang.String[] args)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |