7.1 LegionProgramGraph

UVaL_Reference<LegionInvocation> add_invocation ()
Parameters: UVaL_Reference<LegionInvocation>

Add an invocation to the program graph. Returns the invocation if successful, NULL if not.

ParameterStatus add_constant_parameter();
Parameters: UVaL_Reference<LegionInvocation> target
UVaL_Reference<LegionParameter> parameter
int parameter_number

Adds the given parameter to the specified invocation as the `parameter_number'th parameter. The parameter is a LegionParameter, which means that it contains an already computed value. The other possible is that it is an invocation parameter. This means that the parameter itself is a LegionInvocation, thus representing a computation that has yet to be performed.

ParameterStatus add_invocation_parameter();
Parameters: UVaL_Reference<LegionInvocation> source
UVaL_Reference<LegionInvocation> target
int source_parameter_number
int target_parameter_number

Adds the given source parameter as a parameter to the given target parameter. This call creates what is called a LegionContinuation, and adds the continuation to the continuation list for the source parameter. When an invocation request is eventually executed, the invokee must know where to send the results of the execution. Each LegionContinuation identifies a destination LOID to which a result should be sent.

void add_result_dependency();
Parameters: UVaL_Reference<LegionInvocation> source
int parameter_number

The current implementation always sends the return value of a method request back to the invoker. If the invoker wishes to receive other result values that e.g. might correspond to in/out parameters to the method invocation, then those values must be explicitly asked for using add_result_dependency. This call then creates a LegionContinuation corresponding to the requested parameter.

UVaL_Reference<LegionBuffer> get_value();
Parameters: UVaL_Reference<LegionInvocation> inv
int parameter_number

Gets the specified return value for the given LegionInvocation out of the program graph. This is essentially a call through the program graph to the underlying message database. If the result is not available, get_value blocks until it is. A LegionBuffer is returned.

int execute();
Parameters: None

Takes the program graph rooted at the provided invocation and fire it off to be executed. Does not block.

Directory of Legion 1.8 Manuals
[Home] [General] [Documentation] [Software]
[Testbeds] [Et Cetera] [Map/Search]

Free JavaScripts provided by The JavaScript Source

legion@Virginia.edu
http://legion.virginia.edu/