Partners of the DAM ACTS project are currently facing a problem of interpretation
of the MHEG-5 standard concerning the parameters of the Call (or Fork, this is not the point) action.
Which of the two following solutions is the correct one, according to :
1/ what is actually written in the standard,
2/ what you remind from discussions in the past, for those who took part to them.
Q: What is the correct way to return a value back from a Program ?
Solution 1:
In IS, parameters of the Call action are now both In and Out. When a parameter
is passed as a generic value, via a Variable object used as indirect reference,
and that the value of this parameter has changed after the Program is finished,
then the value of the Variable object is set to the new value. This is what is
meant by point 5 of the Call action.
Solution 2:
In IS, parameters of the Call action are now only In. When a Program needs to
return a value to the RTE, one of its parameters should be an Object Reference
to a Variable object that will receive the returned value. This is done via a call to
the SetVariable method of the API, whithin the Program's body.
Another way to present the problem is the following:
Q: What is the exact meaning of the following sentence of the standard (Subclause
14.4, action Call, Provisions of use, Point 2) ?
'Parameters passed by reference shall be passed via active Variable objects of the
corresponding data type.'
Solution 1:
These 'active Variable objects' are actually generic values, i.e. Object References
of Variable Objects with the keyword ':IndirectRef' coming before.
Solution 2:
These 'active Variable objects' are actually Object References of Variable objects.
Thus, the Program has parameters of type 'ObjectReference'.
Thanks for your help.
Christine