|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--groupmgmt.MemberDetector | +--groupmgmt.impl.SafeDistanceDetector
The SafeDistanceDetector class; Detects members based on beacons, using a BeaconServer. If a new beacon is received, we check the distance, and if it is within a safe range, reportChange is called and it passes the change on to the Disseminator. If a beacon is received with 'stopping' set or if a beacon moves beyond the safe distance, then reportChange is called to remove the member. This class is also in charge of multicasting beacons to its neighbors.
Everything here is done locally, there is no need for a MemberDetector leader because all Members act the same. (It would be possible to implement a less chatty [fewer beacons] and thus more scalable model by designating a MemberDetector leader.)
Uses: MemberBeacon, BeaconEvent, BeaconListener, BeaconServer. also uses Location and LocationGenerator from the location package.
Fields inherited from class groupmgmt.MemberDetector |
disseminator |
Constructor Summary | |
SafeDistanceDetector(int beaconPort,
java.lang.String beaconAddress,
int beaconPeriod,
double range,
double maxSpeed,
double networkLatency,
LocationGenerator locationGenerator)
Constructor. |
Method Summary | |
void |
groupChanged(GroupChangedEvent evt)
Implements the GroupChangedListener interface. |
void |
locationChanged(LocationEvent event)
Implements the LocationListener interface. |
void |
newMemberBeacon(groupmgmt.impl.BeaconEvent memberBeaconEvent)
Implements the BeaconListener interface. |
void |
setDebug(boolean debugging)
Determine whether to output logging messages. |
protected void |
start()
Begin looking for changes in the group (hosts to engage/disengage with) and start sending beacons. |
protected void |
stop()
Stop reporting changes in the group, stop looking for beacons, and stop sending beacons. |
Methods inherited from class groupmgmt.MemberDetector |
isActive, reportChange |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public SafeDistanceDetector(int beaconPort, java.lang.String beaconAddress, int beaconPeriod, double range, double maxSpeed, double networkLatency, LocationGenerator locationGenerator)
beaconPort
- The port to multicast beacons to.beaconAddress
- The multicast address to send beacons to.beaconPeriod
- How often to send beacons (milliseconds).range
- The transmission range of the network (meters).maxSpeed
- The maximum speed of the host (meters/second).networkLatency
- Lag in the network (milliseconds).locationGenerator
- Where to receive locationChanged events from.Method Detail |
public void setDebug(boolean debugging)
debugging
- Outputs messages if true.protected void start()
start
in class MemberDetector
protected void stop()
stop
in class MemberDetector
public void locationChanged(LocationEvent event)
locationChanged
in interface LocationListener
event
- The LocationEvent containing the new Location.public void groupChanged(GroupChangedEvent evt)
groupChanged
in interface GroupChangedListener
evt
- The GroupChangedEvent.public void newMemberBeacon(groupmgmt.impl.BeaconEvent memberBeaconEvent)
newMemberBeacon
in interface groupmgmt.impl.BeaconListener
memberBeaconEvent
- The event generated by the receipt of the
new beacon.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |