Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.ibm.agletx.util
Class AlternateItinerary

    java.lang.Object
      |
      +--com.ibm.aglet.event.MobilityAdapter
            |
            +--com.ibm.agletx.util.AlternateItinerary

All Implemented Interfaces:
  java.util.EventListener, MobilityListener, java.io.Serializable

public class AlternateItinerary
extends MobilityAdapter
implements java.io.Serializable

An itinerary class to dispatch an aglet to any one of multiple destination.
The following is a typical usage of this case.

     AlternateItinerary  itinerary= null;
     public boolean handleMessage(Message msg) {
     if (msg.sameKind("test")) {
     System.out.println("arrived!!!");
     return true;
     }
     return false;
     }

     public void onCreation(Object ini) {
     itinerary = new AlternateItinerary(this);
     itinerary.addAlternate("atp://tsdsai.trl.ibm.com:4434");
     itinerary.addAlternate("atp://yariv.trl.ibm.com:4434");
     try {
     itinerary.go("test");
     } catch (SecurityException ex) {  // a RuntimeException
     // failed to the aglet specific problems.
     } catch (IOException ex) {
     // failed due to communication problems.
     }
     }

In the above code, the `go()` tries to dispatch the owner aglet to one of the alternative destinations specified by the `addAlternate()`. If succeeds, it sends `Message("test")` to the owner aglet upon its arrival to that destination. If multiple destinations are available to host the owner aglet, the selection is implementation-dependant. If fails, it throws an `IOException` exception (in case of communication problems) or `SecurityException` (otherwise).

Version:
  1.20 $Date: 2001/07/28 06:33:38 $
Author:
  Yariv Aridor
See Also:
  Serialized Form

Constructor Summary
`AlternateItinerary(Aglet aglet)`

Method Summary
`void` | `addAlternate(java.lang.String address)`
`void` | `go()` Go to one available destination
`void` | `go(Message msg)` Go to one available destination where the message is processed
`void` | `go(java.lang.String msg)` Go to one available destination where the message is processed
`void` | `onArrival(MobilityEvent ev)` This is not normally used by aglets programmers.
`void` | `removeAlternate(java.lang.String address)`

Methods inherited from class com.ibm.aglet.event.MobilityAdapter
`onDispatching, onReverting`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AlternateItinerary

    public AlternateItinerary(Aglet aglet)

Method Detail

### addAlternate

    public void addAlternate(java.lang.String address)

### go

    public void go()
            throws java.io.IOException

  Go to one available destination
  Throws:
    `java.io.IOException` - if dispatch failed due to communication problems
    `AgletException` - if dispatch failed due to aglet specific problems.

### go

    public void go(Message msg)
            throws java.io.IOException

  Go to one available destination where the message is processed
  Parameters:
    `msg` - the message being sent to the aglet at the destination
  Throws:
    `java.io.IOException` - if dispatch failed due to communication problems
    `AgletException` - if dispatch failed due to aglet specific problems.

### go

    public void go(java.lang.String msg)
            throws java.io.IOException

  Go to one available destination where the message is processed
  Parameters:
    `msg` - the message being sent to the aglet at the destination
  Throws:
    `java.io.IOException` - if dispatch failed due to communication problems
    `AgletException` - if dispatch failed due to aglet specific problems.

### onArrival

    public void onArrival(MobilityEvent ev)

  This is not normally used by aglets programmers.
  Overrides:
    `onArrival` in class `MobilityAdapter`
  Parameters:
    `ev` - a mobility event

### removeAlternate

    public void removeAlternate(java.lang.String address)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD