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

## rice
Class Continuation.MultiContinuation

    java.lang.Object
      rice.Continuation.MultiContinuation

Enclosing class:
  Continuation

public static class Continuation.MultiContinuation
extends java.lang.Object

This class represents a Continuation which is used when multiple results are expected, which can come back at different times. The prototypical example of its use is in an application like Past, where Insert messages are sent to a number of replicas and the responses come back at different times. Optionally, the creator can override the isDone() method, which is called each time an intermediate result comes in. This allows applications like Past to declare an insert successful after a certain number of results have come back successful.

Version:
  $Id: pretty.settings 2305 2005-03-11 20:22:33Z jeffh $
Author:
  jeffh

Field Summary
`protected boolean` | `done` DESCRIBE THE FIELD
`protected boolean[]` | `haveResult` DESCRIBE THE FIELD
`protected Continuation` | `parent` DESCRIBE THE FIELD
`protected java.lang.Object[]` | `result` DESCRIBE THE FIELD

Constructor Summary
`Continuation.MultiContinuation(Continuation parent, int num)` Constructor which takes a parent continuation as well as the number of results which to expect.

Method Summary
`java.lang.Object` | `getResult()` Method which can also be overriden to change what result should be returned to the parent continuation.
`Continuation` | `getSubContinuation(int index)` Returns the continuation which should be used as the result continuation for the index-th result.
`boolean` | `isDone()` Method which returns whether or not we are done.
`protected void` | `receive(int index, java.lang.Object o)` Internal method which receives the results and determines if we are done with this task.

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

Field Detail

### result

    protected java.lang.Object[] result

  DESCRIBE THE FIELD

### haveResult

    protected boolean[] haveResult

  DESCRIBE THE FIELD

### parent

    protected Continuation parent

  DESCRIBE THE FIELD

### done

    protected boolean done

  DESCRIBE THE FIELD

Constructor Detail

### Continuation.MultiContinuation

    public Continuation.MultiContinuation(Continuation parent,
                                          int num)

  Constructor which takes a parent continuation as well as the number of results which to expect.

Parameters:
  `parent` - The parent continuation
  `num` - The number of results expected to come in

Method Detail

### getSubContinuation

    public Continuation getSubContinuation(int index)

  Returns the continuation which should be used as the result continuation for the index-th result. This should be called exactly once for each int between 0 and num.

  Parameters:
    `index` - DESCRIBE THE PARAMETER
  Returns:
    The SubContinuation value

### isDone

    public boolean isDone()
                   throws java.lang.Exception

  Method which returns whether or not we are done. This is designed to be overridden by subclasses in order to allow for more advanced behavior. If we are done and the subclass wishes to return an exception to the calling application, it may throw an Exception, which will be caught and returned to the parent via the receiveException() method. This will cause this continaution to be permanently marked as done.

  Returns:
    The Done value
  Throws:
    `java.lang.Exception` - DESCRIBE THE EXCEPTION

### getResult

    public java.lang.Object getResult()

  Method which can also be overriden to change what result should be returned to the parent continuation. This defaults to the Object[] containing results or exceptions.

  Returns:
    The result which should be returned to the application

### receive

    protected void receive(int index,
                           java.lang.Object o)

  Internal method which receives the results and determines if we are done with this task. This method ignores multiple calls by the same client continuation.

  Parameters:
    `index` - The index the result is for
    `o` - The result for that continuation

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

Copyright © 2001-2005 - Rice Pastry.