Parameters

There are two kind of parameters in SMI. Action parameters and object parameters. Object parameters are essentially additional dynamical attributes that any SMI object (either abstract or associated) can posses. They can be modified during an execution of an object action and in future it will be possible to test (at SML level) on their values. They can be also 'shipped' to other objects (either local or remote) and this way to remote State Managers and proxies. There are 3 types of parameters:

  1. Integer

  1. Floating Point

  1. Strings

At SML level they are encountered at the following places:

  • OBJECT Parameters declaration

  • ACTION Parameters declaration

  • SET instruction

  • DO instruction

OBJECT parameters declaration

If object posses parameters, they must be declared before the first declaration of the object state. The format of the declarative statement, which can span over as many lines as necessary, is as follows :

PARAMETERS : <parameter-declaration1>,<parameter-declaration2>,....,<parameter-declarationn>

where

< parameter-declarationi > has the following format: [<type-declaration>] <parameter-name> [=<value>]

<type-declaration> is either INT or FLOAT or STRING. It's absence is equivalent to STRING.

<value> when specified, is the value to which the parameter is going to be set before the State Manager starts executing. It has to follow C++/C conventions for integer,floating-point and string constants. In particular string values have to be enclosed in double quotes. Inside the double quotes any ASCII characters, except 'null', are allowed. However all non-printable characters have to be escaped. Also some printable characters have to be escaped...explain escaping, show table...etc.

ACTION parameters declaration

Action can have parameters associated with it. When an action has a parameter, it means that it will accept values for this parameter arriving with the command. How this parameter is used it depends on the action instructions, see below. The format of the declarative statement is as follows.

ACTION : <action-name> ( <parameter-declaration1>,....,<parameter-declarationn> )

where

< parameter-declarationi > has the same format as that of object parameters. The meaning of <value> is however different. When present and parameter does not arrive with the command, this value is used. When it is missing, then the value of the parameter is expected to be delivered with the action. If it does not arrive, a warning is issued and the action continues regardless. This tolerant behaviour is necessary for backward compatibility wit the old SML code.

DO instruction

DO <action-name> ( <item1>,....,<itemn> ) <object-name>

where

<itemi> has format <parameter-name> = <X>

where <parameter-name> is a parameter name of the action parameter that is required by the target object <object-name> for the execution of the action <action-name>. and <X> is either ‘local’ parameter name or a value. If ‘local’ parameter of such a name does not exists, then for backward compatibility the do will proceed regardless.

SET instruction

SET <object-parameter-name> = <X>

where <X> is either

  • a value (sets object parameter <object-parameter-name> to the value) or
  • parameter name of an action parameter associated with the action to which the set instruction belongs (sets object parameter
<object-parameter-name> to the value of the delivered action parameter) or
  • has a format: <object-name>.<par-name> (sets object parameter <object-parameter-name> to the value of the parameter <par-name> of object <object-name>).

-- BohumilFranek - 07 Dec 2007

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2020-08-19 - TWikiAdminUser
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox/SandboxArchive All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback