HP 3000 Manuals

Parameter Descriptions -- Pascal [ HP System Dictionary XL Intrinsics ] MPE/iX 5.0 Documentation


HP System Dictionary XL Intrinsics

Parameter Descriptions -- Pascal 

In this subchapter, the System Dictionary parameter types are defined in
Pascal terms.  The only exception is the use of '*' the upper bound of an
array.  Where '*' is used, the upper bound is defined by the caller.

AttributeDescription

                               = record

                                   AttributeType   : integer

                                   AttributeLength : integer

                                 end;

                          This parameter type is a record whose first
                          element is a four-byte integer which identifies
                          an attribute's data type, and whose second
                          element is a four-byte integer which describes
                          the attribute's data length.  Where the data
                          length is either fixed or zero, the second
                          element can be zero.

AttributeEditsType

                               = array[1 .. *] of Boolean;      { Boolean attribute data type }

                                     or

                               = packed array[1 .. *] of char;  { character attribute data type }

                                     or

                               = array[1 .. *] of shortint;     { 2-byte integer attribute data type }

                                     or

                               = array[1 .. *] of integer;      { 4-byte integer attribute data type }

                                     or

                               = array[1 .. *] of real;         { 4-byte floating point attribute data type }

                                     or

                               = array[1 .. *] of longreal;     { 8-byte floating point attribute data type }

                          If this parameter is Boolean data type :
                          This parameter type is an array with Boolean
                          values (true or false).

                          if this parameter is character data type :
                          This parameter type is an character array
                          containing a list of edit values for a
                          character data type attribute.  The byte length
                          of each edit value is the same as the
                          attribute's byte length.

                          if this parameter is 2-byte integer data type :
                          This parameter type is an array containing
                          pairs of 2-byte integer values.  Each pair
                          represents a range of valid integer values for
                          a 2-byte integer data type attribute.

                          if this parameter is 4-byte integer data type :
                          this parameter type is an array containing
                          pairs of 4-byte integer values.  each pair
                          represents a range of valid integer values for
                          a 4-byte integer data type attribute.

                          if this parameter is 4-byte floating point data
                          type :
                          This parameter type is an array containing
                          pairs of 4-byte floating point values.  Each
                          pair represents a range of valid floating point
                          values for a 4-byte floating point data type
                          attribute.

                          if this parameter is 8-byte floating point data
                          type :
                          This parameter type is an array containing
                          pairs of 8-byte floating point values.  Each
                          pair represents a range of valid floating point
                          values for an 8-byte floating point data type
                          attribute.

AttributeListType

                               = packed array[1 .. *] of char;  { name type }

                                     or
                               = array[1 .. *] of integer;      { internal number type }

                          If this parameter is name type :
                          This parameter type is a character array
                          containing the names of attributes.  Each name
                          in the list must either be 32 characters long
                          or be separated from the next name in the list
                          by at least one blank.  Separation by blanks is
                          optional if the names are 32 characters long.
                          The length of the list may be up to 8646
                          characters, and must be terminated with a
                          semicolon.

                          If this parameter is internal number type :
                          This parameter is an array of up to 263
                          four-byte integers.  The first four bytes of
                          this array contain a number N (1 to 262), which
                          is followed by N internal numbers.  The length
                          of the array is determined by the number of
                          integers being passed.  The internal numbers
                          are the attributes' internal numbers.

AttributeValuesType       = user defined type

                          This parameter type is any data type whose
                          fields match the data types and lengths for the
                          attributes supplied in the attribute list.

                          Note :  The starting position of each attribute
                          value in the record must be correctly located.
                          The locations are described in Appendix C of
                          this manual, under the heading "Attribute Value
                          Alignment" .

DateType                  = packed array[1 ..  16] of char;

                          This parameter type is a 16 character field
                          containing a date generated by a System
                          Dictionary intrinsic.  The date has the
                          following format:

                               YYYYMMDDhhmmsstt

                          where

                                     YYYY   is the year
                                     MM      is the month
                                     DD      is the day
                                     hh      is the hour
                                     mm      is the minute
                                     ss      is the second
                                     tt      is the tenths of the second

DcbType                   = array[1 ..  30] of integer;

                          The Dictionary control block is an array of 30
                          four-byte integers, and is used to pass control
                          information to the intrinsics.

DictionaryName            = packed array[1 ..  86] of char;

                          This parameter should be left justified.  If
                          the name is less than 86 characters, the last
                          character in the name must be a blank.

EntityListType

                               = packed array[1 .. *] of char;  { name type }
                                     or
                               = array[1 .. *] of integer;      { internal number type }

                          If this parameter is name type :
                          This parameter type is a character array
                          containing the names of entities.  Each name in
                          the list must either be 32 characters long or
                          be separated from the next name in the list by
                          at least one blank.  Separation by blanks is
                          optional if the names are 32 characters long.
                          The length of the list may be up to 198
                          characters, and must be terminated with a
                          semicolon.

                          If this parameter is internal number type :
                          This parameter is an array of up to 7 four-byte
                          integers.  The first four bytes of this array
                          contain a number N (1 to 6), which is followed
                          by N internal numbers.  The length of the array
                          is determined by the number of integers being
                          passed.  The internal numbers are the entities'
                          internal numbers.  In the case where a single
                          relationship number is specified, the first
                          four bytes will contain the number 1, and the
                          second four will contain the relationship's
                          internal number.

EntityListOutType         = packed array[2 ..  *] of NameType;

                          This output parameter type is an array
                          containing up to seven entity names.  Each name
                          in the array is defined by parameter type
                          NameType, and will be a left justified, right
                          blank filled, 32 character field.  The list
                          will be terminated by a semicolon.

                          Note :  The above list will contain a maximum
                          of six names but will include the list
                          terminator (;) in the first byte of the seventh
                          name space if the list contains six names.  The
                          seventh name will not be right blank filled.
                          The maximum number of usable bytes in this
                          parameter is 193 [(32*6)+1].

ItemValueType             = user defined type;

                          This parameter type is user defined.  It is any
                          data type whose fields match the data type and
                          length for the corresponding specified item.

MessageType               = packed array[1 ..  72] of char;

                          This output parameter type is a character array
                          used for error messages, and is left justified.

NameType                  = packed array[1 ..  32] of char;

                          This parameter type may be used as either an
                          input or output parameter.  If it is used as an
                          input parameter, the name must be 32
                          characters, left justified, and right blank
                          filled.  No blanks are allowed between
                          characters, however.  All lower case letters
                          will be upshifted.  All alphanumeric and
                          special characters may be used in a name EXCEPT
                          those in the following list:

                               ,  ;  :  .  (  )  "  =  >  <  ^  !

                          If the name is an output parameter, it will be
                          left justified and right blank filled.

NameOrNumberType

                               = packed array[1 .. 32] of char;  { name type }

                                     or

                               = array[1 .. 2] of integer;       { internal number type }

                          This parameter type passes information in
                          either name or number format.

                          If this parameter is name type :
                          This parameter is a left justified, right blank
                          filled, 32 character name.  All lower case
                          letters used in the name will be upshifted.
                          All alphanumeric and special characters may be
                          used in a name EXCEPT those in the following
                          list:

                               ,  ;  :  .  (  )  "  =  >  <  ^  !

                          If this parameter is internal number type:
                          The first four bytes of this array contain the
                          number 1 one), followed by a four-byte integer
                          which is the internal number.

                          Note : 

                          If the parameter is :    the internal number 
                                                   should be: 
                          an attribute             the attribute's
                                                   internal number
                          a domain                 the domain's internal
                                                   number
                          an entity                the entity's internal
                                                   number
                          an entity type           the entity type's
                                                   internal number
                          a relationship class     the relationship
                                                   class' internal number
                          a scope                  the scope's internal
                                                   number
                          a version                the version's internal
                                                   number

NewEntityListType

                               = packed array[1 .. *] of char;  { name type }

                                     or

                               = array[1 .. *] of integer;      { internal number type }

                          If this parameter is name type :
                          This parameter type is a character array
                          containing the names of entities.  Each name in
                          the list must either be 32 characters long or
                          be separated from the next name in the list by
                          at least one blank.  Separation by blanks is
                          optional if the names are 32 characters long.
                          The length of the list may be up to 198
                          characters, and must be terminated with a
                          semicolon.

                          If this parameter is internal number type :
                          This parameter is an array of up to 7 four-byte
                          integers.  The first four bytes of this array
                          contain a number N (2 to 6), which is followed
                          by N internal numbers.  The length of the array
                          is determined by the number of integers being
                          passed.  The internal numbers are the entities'
                          internal numbers.

NewNameType               = array[1 ..  2] of NameType;

                          This parameter type contains either one or two
                          names as defined by parameter type NameType.
                          The first name is an internal name and is
                          required.  If an external name which is
                          different from the internal name is desired, a
                          second name may be included in the array.  This
                          name fills positions 1 through 32 of the second
                          name in the array, and, like the first name,
                          must be left justified and right blank filled.
                          If a second name is not desired, the second
                          name space must be filled with blanks.

                          All alphanumeric and special characters may be
                          used in a name EXCEPT those in the following
                          list:

                               ,  ;  :  .  (  )  "  =  >  <  ^  !

NewRelationshipTypeList

                               = packed array[1 .. *] of char;  { name type }

                                     or

                               = array[1 .. *] of integer;      { internal number type }

                          If this parameter is name type :
                          This parameter type is a character array
                          containing the entity types involved in a
                          relationship type.  Each name in the list must
                          either be 32 characters long or be separated
                          from the next name in the list by at least one
                          blank.  Separation by blanks is optional if the
                          names are 32 characters long.  The length of
                          the list may be up to 198 characters, and must
                          be terminated with a semicolon.

                          If this parameter is internal number type :
                          This parameter is an array of up to 7 four-byte
                          integers.  The first four bytes of this array
                          contain a number N (2 to 6), which is followed
                          by N internal numbers.  The length of the array
                          is determined by the number of integers being
                          passed.  The internal numbers are the entity
                          types' internal numbers.

RelationshipTypeList

                               = packed array[1 .. *] of char;  { name type }

                                     or

                               = array[1 .. *] of integer;      { internal number type }

                          If this parameter is name type :
                          This parameter type is a character array
                          containing the entity types involved in a
                          relationship type.  Each name in the list must
                          either be 32 characters long or be separated
                          from the next name in the list by at least one
                          blank.  Separation by blanks is optional if the
                          names are 32 characters long.  The length of
                          the list may be up to 198 characters, and must
                          be terminated with a semicolon.

                          If this parameter is internal number type :
                          This parameter is an array of up to 7 four-byte
                          integers.  The first four bytes of this array
                          contain a number N (1 to 6), which is followed
                          by N internal numbers.  The length of the array
                          is determined by the number of integers being
                          passed.  The internal numbers are the entity
                          types' internal numbers.  In the case where a
                          single relationship type number is specified,
                          the first four bytes of the array will contain
                          the number 1, and the second four will contain
                          the relationship type's internal number.

RelationshipTypeOutList   = packed array[2 ..  *] of NameType;
                          This output parameter type is a character array
                          containing up to seven entity types involved in
                          a relationship type.  Each name in the array is
                          defined by parameter type NameType, and will be
                          a left justified, right blank filled, 32
                          character field.  The list will be terminated
                          by a semicolon.

                          Note :  The above list will contain a maximum
                          of six names but will include the list
                          terminator (;) in the first byte of the seventh
                          name space if the list contains six names.  The
                          seventh name will not be right blank filled.
                          The maximum number of usable bytes in this
                          parameter is 193 [(32*6)+1].

RetrievalIDType           = array[1 ..  20] of integer;
                          This parameter type contains information
                          identifying what is to be retrieved, and passes
                          control information to the calling intrinsic.
                          The first four bytes of this parameter must be
                          initialized to a binary zero before the
                          intrinsic is called.  During the first call,
                          the intrinsic changes the value of this
                          parameter to a new value which is determined by
                          the intrinsic being called.  This new value
                          should never be changed, and must be passed
                          back to the intrinsic at each successive call.

ScopeAccessType           = integer;
                          This parameter type contains a four-byte
                          integer which is the ScopeAccess number of the
                          scope.  It specifies the access a scope has to
                          an entity or a relationship.  The legal values
                          are:

                          1  =  Read access
                          2  =  Read and Modify access
                          3  =  Create, Delete, Read, and Modify access

ScopePasswordType         = packed array[1 ..  32] of char;
                          This parameter type contains a 32 character
                          array which must be right blank filled.
                          Trailing blanks are not considered part of the
                          password.  However, the password may contain
                          embedded blanks, or be all blanks (no
                          password).
                          Note :  All alphanumeric and special characters
                          may be used in passwords.

ScopeRightsType           = array[1 ..  *] of integer;
                          This parameter is an array of up to 7 four-byte
                          integers.  The first four bytes of this array
                          contain a number N (1 to 6), which is followed
                          by N Scope Right numbers.  The length of the
                          array is determined by the user.  Scope Rights
                          are assigned as follows:

                               1  =  Secure capability
                               2  =  Extend capability
                               3  =  Create capability
                               4  =  Read capability
                               5  =  Domain capability
                               6  =  Version Control capability

StatusType                = array[1 ..  7] of integer;

                          This parameter type is a 28-byte array (7
                          four-byte integers) containing information
                          indicating the success or failure of an
                          intrinsic call.  Every intrinsic returns this
                          information.  The first 16 bytes are the same
                          for each intrinsic, as shown below.

          Table 3-1.  STATUS CONTENTS (Pascal) 

-------------------------------------------------------------------
|                   |                                             |
|       Bytes       |                   Contain                   |
|                   |                                             |
-------------------------------------------------------------------
|                   |                                             |
|       1 - 4       | The System Dictionary condition code (error |
|                   | message number)                             |
|                   |                                             |
-------------------------------------------------------------------

|       5 - 8       |                                             |
|                   | The subsystem code number:                  |
|                   |                                             |
|                   |      0 = No Subsystem Error                 |
|                   |      1 = MPE                                |
|                   |      2 = IMAGE                              |
|                   |      3 = SORT                               |
|                   |                                             |
-------------------------------------------------------------------
|                   |                                             |
|      9 - 12       | The subsystem error code.  (e.g.  the IMAGE |
|                   | error code)                                 |
|                   |                                             |
-------------------------------------------------------------------
|                   |                                             |
|      13 - 16      | The intrinsic number                        |
|                   |                                             |
-------------------------------------------------------------------

                          The contents of the remaining bytes (17 - 28)
                          are determined by the intrinsic being called.
                          The description of each intrinsic which uses
                          these bytes contains a continuation of this
                          table, which shows how they are used in that
                          particular intrinsic.


NOTE Every System Dictionary intrinsic which is used to retrieve a list of items (e.g. SDFindRelList, SDGetDomainList, SDGetRelVarAttr) will return System Dictionary error number 24 to the first four bytes of the Status parameter after the last item in the list has been retrieved. This number, however, is not really an intrinsic "error" , but a value which may be used for program control (e.g. testing within a loop). Because the value does not change until after the last item in the list is retrieved, the intrinsic is actually called one more time than the number of items in the list. For example, the intrinsic SDGetDomainList is used in a dictionary which has six domains. Assuming no dictionary errors, the first four bytes of the Status parameter will be 0 during the first six calls (0 = no dictionary errors). On the seventh call, however, there are no more domains to retrieve, and the value 24 will be returned, indicating "end-of-list" .
ValueLine = packed array[1 .. 80] of char; This output parameter type is a line of variable length attribute text. ValueText = packed array[1 .. *] of char; This input parameter type is variable length attribute text. The length is determined by the user. VersionStatusType = integer; This parameter type is a four-byte integer specifying the status of a version. Valid values for the version statuses are: 1 = Test status 2 = Production status 3 = Archival status


MPE/iX 5.0 Documentation