GemFire 6.0.1

com.gemstone.gemfire.cache.execute
Interface ResultSender<T extends Serializable>


public interface ResultSender<T extends Serializable>

Provides methods to send results back to the ResultCollector. A ResultSender adds the ability for an execute method to send a single result back, or break its result into multiple pieces and send each piece back to the calling thread's ResultCollector. For each result sent using this method, ResultCollector.addResult(Serializable) is called, making that result available to the calling thread immediately.

Example:

  
      execute(FunctionContext context){
              ResultSender rs = context.getResultSender();
              int lastResult = -1;
              for(int i=0;i< 10; i++) {
                      rs.sendResult(i);
              }
              rs.lastResult(lastResult);
      }
      
  Application can receive the results as it is sent using ResultSender in the above for loop.
  It is very important to send a last result as it informs ResultCollector
  to stop waiting for the result.
 

Since:
6.0
See Also:
ResultCollector.addResult(Serializable)

Method Summary
 void lastResult(T lastResult)
          Sends a result back to the FunctionService calling thread and invokes ResultCollector.addResult(Serializable) and then ResultCollector.endResults() if it is the last instance of the Function to report results.
 void sendResult(T oneResult)
          Sends a result back to the FunctionService calling thread and invokes ResultCollector.addResult(Serializable).
 

Method Detail

sendResult

void sendResult(T oneResult)
Sends a result back to the FunctionService calling thread and invokes ResultCollector.addResult(Serializable).

Parameters:
oneResult -

lastResult

void lastResult(T lastResult)
Sends a result back to the FunctionService calling thread and invokes ResultCollector.addResult(Serializable) and then ResultCollector.endResults() if it is the last instance of the Function to report results. The ResultCollector will keep waiting for results until it receives last result. Therefore, it is very important to use this method to indicate end of function execution.

Parameters:
lastResult -
Throws:
IllegalStateException - if called more than once
See Also:
ResultCollector.endResults()

GemFire 6.0.1

Copyright © 2002-2009 GemStone Systems, Inc. All Rights Reserved.