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