The names given to the primitives follow a convention of using lowercase, except for the first letter of the second and subsequent words of multiword names. For example, to get operation arguments, the name of the primitive is getOperationArguments.

Where the resulting names are overly long, the API provides shorter aliases; getOperationArguments() has the alias getOpArgs(). Typically, the word “Operation” is shortened to “Op”, and “Property” is shortened to “Prop”, however, both the long and shortened name can be used. Both forms are described in the following sections.

Since primitives are designed to be called by using the InCharge::session, where a primitive name conflicts with a module function, the name of the primitive has the string “_P” concatenated onto it in order to differentiate the two. Script authors are discouraged from using these “_P” versions since higher-level versions are available through InCharge::session and, in some cases, InCharge::object that are easier to use.

Where a primitive returns a value that may be of any type, a second version of the call is provided that returns both the numeric type code and the return value. The name of this extended version is the same as the lesser original but with “_t” appended. You can also specify “_T” instead of “_t”, in which case when the primitive returns an ANYVAL_ARRAY_SET (that is, a structure of structures), the fields of the structures are also accompanied by their types. This is a reference to a two-element array containing type and value for each structure field.

The primitive names are similar to those used in the C++ API. Where the names do not match those used by ASL or dmctl, aliases are provided. For example, the ASL command getInstances() is called getLeaf Instances() in the C++ API. Therefore, the API allows both names to be used. The C++ name is the name used for the actual primitive and the ASL name is provided as an alias.

The C interface for Smarts software, on the other hand, uses function names that look like sm_property_unsubscribe(). They start with “sm_” and use all lowercase words delimited by underscores. This set of functions is less complete than the C++ equivalent interface and does not provide a one-to-one match of all the Domain Manager primitives. The API for Perl does not provide a match for the C interface function names.