open-insight/SYSPROG/STPROCINS/FOREIGN.SUBS.EQUATES.txt
2024-03-25 15:17:34 -07:00

151 lines
6.2 KiB
Plaintext

COmpile Insert Foreign.Subs.Equates
*>>
* FOREIGN.SUBS.EQUATES - equates for the subroutine handler supplied with
* bond.
*
* Each environmental bond may supply a subroutine handler as part of its
* bonding kit. This subroutine has a name of the form XXXX.SUBS, where
* 'XXXX' is the name of the bond (e.g. DBASE, ASCII, etc.).
*<<
!
!
*
* FOREIGN.SUBS command codes
*
* The first argument to the subroutine handler is a code which specifies
* the function to be performed:
*
EQU FBS.TYPE.EXPAND$ TO 1
*>>
* FBS.TYPE.EXPAND$ - bond-specific fill-out of dictionary record.
*
* Syntax:
* $INSERT FOREIGN.SUBS.EQUATES
* CALL ____.SUBS(FBS.TYPE.EXPAND$, TYPE.ARGS, MAP.RECORD, FILE.ATTR
* DICT.RECORD, STATUS)
*
* Where:
* TYPE.ARGS -
* contains the fieldmark-separated argument values for the core
* generic type. Note that, for derived types, this may be different
* than the argument list which appears in the 'D.E.GENERIC.TYPE'
* field of 'DICT.RECORD'.
* MAP.RECORD -
* is the record from the type-mapping table which corresponds to the
* type mapping the user has (implicitly or explicitly) selected.
* FILE.ATTR -
* contains the bond-specific file attributes as returned by the
* associated bond-specific collector window. Each attribute value
* is separated by a fieldmark. The first field is reserved for
* specifying the "file type". If this argument is NULL, the default
* file attributes are to be assumed.
* DICT.RECORD -
* contains the dictionary record to be filled out. This may already
* have been partially filled out by the user and/or the generic type
* expansion routines.
* STATUS -
*
* Description:
* FBS.TYPE.EXPAND$ may be called by BOND.SUBS when it is using a type
* specification to fill out a dictionary record. The bond designer specifies
* which mappings require bond-specific manipulation of the dictionary record
* by setting a flag (BSTM.CALL.EDIT$) in the corresponding record in the
* type mappings file.
*<<
EQU FBS.MAP.FILENAME$ TO 2
*>>
* FBS.MAP.FILENAME$ - Map filename into acceptable foreign filename.
*
* Syntax:
* $INSERT FOREIGN.SUBS.EQUATES
* CALL ____.SUBS(FBS.MAP.FILENAME$, NAME.IN, NAME.OUT, STATUS)
*
* Where:
* NAME.IN -
* Contains a filename to be validated for the foreign
* environment.
* NAME.OUT -
* Will contain a translated version of the input filename
* which would be acceptable to the foreign environment. If
* the input filename did not require any translation, then
* NAME.OUT will be set to NAME.IN.
* STATUS -
* '' - The input filename is acceptable to
* the foreign environment as is.
* FS_INVALID_FILENAME_ERR$
* - The input file name cannot be directly
* represented in the foreign environment.
* Description:
* FBS.MAP.FILENAME$ can be used to map an Advanced Revelation
* filename into a foreign filename. It can also be used to
* determine the validity of a foreign filename. If the given
* filename is legal in the foreign environment, then it is
* returned and STATUS will be NULL. If not, the bond will return
* (in NAME.OUT) a similar filename which is legal and will set the
* status to FS_INVALID_FILENAME_ERR$
*<<
EQU FBS.MAP.FIELDNAME$ TO 3
*>>
* FBS.MAP.FIELDNAME$ - Map fieldname into acceptable foreign fieldname.
*
* Syntax:
* $INSERT FOREIGN.SUBS.EQUATES
* CALL ____.SUBS(FBS.MAP.FIELDNAME$, NAME.IN, NAME.OUT, STATUS)
*
* Where:
* NAME.IN -
* Contains a fieldname to be validated for the foreign
* environment.
* NAME.OUT -
* Will contain a translated version of the input fieldname
* which would be acceptable to the foreign environment. If
* the input fieldname did not require any translation, then
* NAME.OUT will be set to NAME.IN.
* STATUS -
* '' - The input fieldname is acceptable to
* the foreign environment as is.
* FS_INVALID_FIELDNAME_ERR$
* - The input file name cannot be directly
* represented in the foreign environment.
* Description:
* FBS.MAP.FIELDNAME$ can be used to map an Advanced Revelation
* fieldname into a foreign fieldname. It can also be used to
* determine the validity of a foreign fieldname. If the given
* fieldname is legal in the foreign environment, then it is
* returned and STATUS will be NULL. If not, the bond will return
* (in NAME.OUT) a similar fieldname which is legal and will set the
* status to FS_INVALID_FIELDNAME_ERR$
*<<
EQU FBS.SELECT.DERIVED$ TO 4
*>>
* FBS.SELECT.DERIVED$ - Select which type this one is derived from.
*
* Syntax:
* $INSERT FOREIGN.SUBS.EQUATES
* CALL ____.SUBS(FBS.SELECT.DERIVED$, TYPE.NAME, TYPE.ARGS,
* SELECTED.TYPE, STATUS)
*
* Where:
* TYPE.NAME -
* is an input variable containing the name of a data type in
* TYPE_TABLE.
* TYPE.ARGS -
* is an input variable containing the arguments to the data type
* specified in TYPE.NAME. These arguments will be separated by
* field marks.
* SELECTED.TYPE -
* is an output variable containing a data type specification,
* including parameters, if any.
* STATUS -
* is either NULL if no error was encountered
* Description:
* FBS.SELECT.DERIVED$ is used to dynamically decide what data type
* a particular type is derived from. When the "Derived From" field of
* a TYPE_TABLE record contains the word "DYNAMIC", BOND.SUBS will call
* FOREIGN.SUBS with this function code in order to obtain a dynamically-
* generated value for the "Derived From" field. This value may contain
* insertable parameters (e.g. "%1%").
*
*<<
* Source Date: 15:47:15 09 JAN 1991 Build ID: AREV*2.1.26 Level: 2.1