Previous | UML Classes | Table of Contents | UML Packages | Next |
•
CallAction (from BasicActions ) on page 254
Issue 8736 - reword for clarity about synchronous vs asynchronous effects
CallBehaviorAction is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn,
results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked
behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior
completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous.
No additional attributes
• behavior : Behavior [1..1] The invoked behavior. It must be capable of accepting and returning control.
[1] The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal.
[2] The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal.
[3] The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior.
[1] When all the prerequisites of the action execution are satisfied, CallBehaviorAction invokes its specified behavior with
the values on the input pins as arguments. When the behavior is finished, the output values are put on the output pins. Each
parameter of the behavior of the action provides output to a pin or takes input from one. No other implementation
specifics are implied, such as call stacks, and so on. See Pin (from BasicActions ) on page 275.
[2] If the call is asynchronous, the action completes immediately. Execution of the invoked behavior proceeds without any
further dependency on the execution of the behavior containing the invoking action. Once the invocation of the behavior has
been initiated, execution of the asynchronous action is complete.
[3] An asynchronous invocation completes when its behavior is started, or is at least ensured to be started at some point.
Any return or out values from the invoked behavior are not passed back to the containing behavior. When an asynchronous invocation
is done, the containing behavior continues regardless of the status of the invoked behavior. For example, the containing behavior
may complete even though the invoked behavior is not finished.
[4] If the call is synchronous, execution of the calling action is blocked until it receives a reply from the invoked behavior.
The reply includes values for any return, out, or inout parameters.
[5] If the call is synchronous, when the execution of the invoked behavior completes, the result values are placed on the
result pins of the call behavior action, and the execution of the action is complete (StructuredActions , ExtraStructuredActivities ).
If the execution of the invoked behavior yields an exception, the exception is transmitted to the call behavior action to
begin search for a handler. See RaiseExceptionAction .
See specialization of
CallBehaviorAction (as specialized) on page 362.
See specialization of
CallBehaviorAction (as specialized) on page 362.
Invokes a behavior directly without the need for a behavioral feature.
Same as UML 1.5