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