Designing SCOadmin object service agents

Attribute definition table (ADT)

An attribute definition table defines for each attribute a token to reference the attribute by, sets of valid operations and filters that may be performed on the attribute, and the attribute's value structure.

Attribute definition table

enabled ATTR_ENABLED get eq single string
gid 1 get add remove eq present set integer
level 100 get replace replaceWithDefault eq le ge single integer
priority ATTR_PRIORITY get replace eq single double

1st column: name
made up of characters [a-z_]* and used by the Server API to identify the attribute.

2nd column: token
an integer used by the Server API and OSAs to reference the attribute. Identifiers can be in any order and in any positive range (negative integers are reserved for error conditions; zero is reserved for the NULL token). In languages (such as Tcl) which have only the string data type, the token is identical to the name.

3rd column: valid operations
all operations that may be performed on the attribute. Can include: get, replace, replaceWithDefault, add, remove, create. (create is always allowed to include any attribute, so it is implied to be listed for every attribute.)

4th column: valid filters
all filters that may process the attribute. Can include: eq, le, ge, subset, superset, present, intersect.

5th column: value structure
(set|single) (string|integer|double) Identifies for OSAs and Server API how the value(s) paired with attribute should be interpreted. In Tcl every data type is a string, so the CDT does not specify the data type for this pair of values. In C/C++, strings are represented as char *, integers as long, and floating point numbers as doubles.
In the example, the attribute gid (token: 1) may be operated upon by get, add, or remove and evaluated by the filters eq and present; paired values are structured as integer sets.

For more information, see ``Example Attribute Definition Tables (ADT)''.

Next topic: Operation definition table (ODT)
Previous topic: Creating class definition tables

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003