1
XStream Functions
The SKILL programming language lets you customize and extend your design environment. SKILL provides a safe, high-level programming environment that automatically handles many traditional system programming operations, such as memory management. SKILL programs can be immediately executed in the Cadence environment.
This information set describes custom layout SKILL functions for layout editor, parameterized cells, compactor, structure compiler, placement and routing translation, layout XL, custom digital placer, and Virtuoso constraint manager. It is aimed at developers and designers of integrated circuits and assumes that you are familiar with:
- The SKILL programming language.
- The Virtuoso design environment and application infrastructure mechanisms designed to support consistent operations between all Cadence tools.
- The applications used to design and develop integrated circuits in the Virtuoso design environment, notably Virtuoso Layout Suite and Virtuoso Schematic Editor.
- The OpenAccess version 2.2 technology file.
Component description format (CDF), which lets you create and describe your own components for use with Layout XL.
Licensing Requirements
This section describes an overview of how licensing is implemented in physical translators, XStream In, XStream Out, XOasis In, XOasis Out, LEF In, LEF Out, DEF In, and DEF Out translators. The licensing scheme is the same for both command line and GUI translators.
In case, a license is not available for a translator and you select File – Import – LEF/DEF/Stream option from CIW, a form will be displayed without a license. You can specify the values in the form and click the OK button. The translator in this case would perform a validation check for license and try to checkout the license. You will not be able to do the translation if the license is unavailable.
This license "111" is required to run all these physical design translators.
These translators work only with the Design Framework II license "111" and with no other product license. Therefore, even if Layout XL or a higher tier license is available, you will not be able to run these translators if license "111" is not available. Also, to be able to run some advanced SKILL APIs that used in libInit.il or Pcell SKILL code, you will require functionality based licenses (L/XL/GXL).
This chapter provides syntax, descriptions, and examples for the SKILL functions associated with the XStream translator.
There are two types of SKILL functions in XStream:
Command-Line SKILL Functions
poCellNameMap
poCellNameMap(t_lib t_cell t_view) =>t_mapName/nil
Description
Passes the library name, cell name and the view name for each cell in the library to a user-defined procedure.
While translating a cellview, Stream Out first checks for the cell name map file. If a cell name map file is not specified, then Stream Out checks whether the user-defined SKILL file is provided and the poCellNameMap function is defined. If the function is defined, it is called and the library name, cell name, and view name are passed to this function. The string value returned by this function is considered as new name for the cellview. For more information, see the
When both Cell Map File Name and poCellNameMap are specified, value specified for Cell Map File Name is used.
Arguments
Value Returned
Example
In this example, the characters "_po" are added to every cell name. The library and view are ignored.
procedure( poCellNameMap( lib cell view )
prog( ( mapname )
sprintf( mapName "%s_po" cell)
return( mapName )
);prog
);procedure
poLayerMap
poLayerMap(t_layerName t_purposeName) =>l_layerDatatype/nil
Description
This is a user-defined function that passes the layer number and datatype for each layer in the input Stream file, when it is called. Stream Out interprets the output of the procedure in the same way it interprets the OpenAccess name and purpose. However, Stream Out checks for this function only if the layer map file (-layerMap option) is not specified. If the layer map file is specified, the poLayerMap function is ignored. For more information, see the Layer Map File section.
Arguments
Value Returned
|
A list containing two integers. The first integer is the translated layer number. The second integer is the translated data type. |
|
Example
In this example, the "text drawing" layer-purpose pair is mapped to GDSII layer 15 and data type 0. The "diff drawing" layer-purpose pair is mapped to layer 18 and data type 0.
procedure( poLayerMap( layerName layerPurpose )
prog( ( lay )
case( layerName
( "text" return( list( 15 0 ) ) )
( "diff" return( list( 18 0 ) ) )
( "substrate" return( list( 20 0 ) ) )
( t return( list( 55 0 ) ) );default
);case
);prog
);procedure
textFontMap
textFontMap(t_fontName) =>l_streamFont/nil
Description
Passes each font type in a Design Framework II library to a user-defined procedure.
While translating the OpenAccess label, Stream Out checks whether the font is mapped through text font map file. If the text font map file is not provided or the font is not mapped through the text font map file, then Stream Out checks for the textFontMap SKILL function. If the function is defined, then Stream Out calls this function and OpenAccess font name as the argument.
Valid Stream font numbers are 0, 1, 2, and 3. The OpenAccess font names are Unknown, EuroStyle, Gothic, Math, Roman, Script, Stick, Fixed, Swedish, and MilSpec. For more information, see the
Arguments
Value Returned
Example
In this example, the DFII fonts Gothic, Roman, and Script are mapped to Stream fonts 3, 1, and 2. All others are mapped to the Stream font 0.
procedure( textFontMap( font )
prog( ()
case( font
( “Gothic” return( 3 ) )
( “Roman” return( 1 ) )
( “Script” return( 2 ) )
(t return( 0 ) )
);case
);prog
);procedure
piCellNameMap
piCellNameMap(t_cell) =>l_cellview/nil
Description
Passes the cell name for each cell name in the input file to a user-defined procedure.
Stream In interprets the output of the procedure in the same way as it interprets the output of the same procedure in the OpenAccess library, cell, and view names. For more information, see the
Arguments
Value Returned
|
A list containing the OpenAccess library, cell, and view names. |
|
Example
In this example, the characters "_pi" are added to every cell name and reflib1 and layout is returned as library name and view name.
procedure( piCellNameMap( cell )
prog( ( mapname )
sprintf( mapname "%s_pi" cell )
return( list( “reflib1” mapname "layout" ) )
);prog
);procedure
procedure( piCellNameMap( cell )
prog( ( mapname )
sprintf( mapname "%s_pi" cell )
return( list( “XST_TARGET_LIB” mapname "layout" ) )
);prog
);procedure
XST_TARGET_LIB name will be replaced with the library name specified using the -lib option.In this example, the special character/in a cell name is replaced with_.
procedure( piCellNameMap( cell )
prog( ( mapname )
cellName=sprintf( nil "%s" cell )
rexCompile("/")
mapname=rexReplace(cellName "_" 0)
println(mapname)
return( list( "myLib" mapname "layout" ) )
);prog
);procedure
piLayerMap
piLayerMap(x_layer x_dataType) =>l_lpp/nil
Description
This is a user-defined function that passes the layer number and datatype for each layer in the input Stream file, when it is called. Stream In interprets the output of the procedure in the same way it interprets the OpenAccess name and purpose. However, Stream In checks for this function only if the layer map file (-layerMap option) is not specified. If the layer map file is specified, the piLayerMap function is ignored. For more information, see the
Arguments
Value Returned
|
A list containing two strings. The first string is the dfII layer name. The second string is the dfII layer purpose. |
|
Example
In this example, the input layers 1 to 10 are mapped to the Design Framework II layer-purpose pair text drawing.
procedure( piLayerMap( layer datatype )
prog( ( lay )
lay=layer
if( lay >= 1 && lay <= 10 then
return( list( "text" "drawing") )
)))
piTextMap
piTextMap(t_label) =>t_changedLabel
Description
Modifies the text that is translated from the Stream file to a dfII library.
During Stream In, if you specify a SKILL file having piTextMap defined in it, then this function is called for each text object and the text string is passed as an argument to this function. The string returned by this function is used to modify the text in the target dfII library.
Arguments
Value Returned
Example
During Stream In, you can replace the character [ with < and character ] with > by using the piTextmap function.
procedure( piTextMap( label )
prog( ( newLabel )
rexCompile( "\\[" )
newLabel = rexReplace( label "<" 1 )
rexCompile( "\\]" )
newLabel = rexReplace( newLabel ">" 1 )
return( newLabel )
);prog
);procedure
poTextMap
poTextMap(t_label) =>t_changedLabel
Description
Modifies the text that is translated from the dfII library to the Stream file.
During Stream Out, if you specify a SKILLfile having poTextMap defined in it, then this function is called for all text objects and the text string is passed as an argument to this function.
The string returned by this function is used to create the text object in the Stream file. It is applicable to all the strings present in the dfII library and being translated as text in the Stream file as labels. The string is also applicable to the text translated corresponding to pins when you use the Convert Pin to option to translate pins as texts.
Arguments
Value Returned
Example
During Stream In, you can replace the character [ with < and character ] with > by using the poTextmap function.
poParamCellNameMap
poParamCellNameMap(t_name d_cvid) =>t_mapName
Description
This is a user-defined function that is called with the parameterized cell name (super-master name) and sub-master cellview identifier. Stream Out interprets the output of the procedure in the same way as it interprets the translated name for the parameterized cell.
Arguments
|
The Virtuoso Design Environment parameterized cell name (super-master name) defined by the user. |
|
|
The Virtuoso Design Environment parameterized cell variant (sub-master) cellview identifier. |
Value Returned
Example
In this example, the translator appends the cellview identifier to every parameterized cell name, making the cell name unique.
procedure( poParamCellNameMap( name ID )
sprintf( nil "%s_%L" name ID )
);procedure
poPreTranslate
poPreTranslate(
lib
cell
view
)
Description
During StreamOut, this function is called just before the translation starts.
db, dd, tech, cst, abe, vfo (vfo.cxt), and pas (pdkutils.cxt) SKILL functions. Application specific functions such as le, hi, sch, lx, and via are not supported.
XStream In supports only following SKILL Core, db, dd, tech, and cst SKILL functions. Application specific functions, such as le, hi, sch, lx, via and so on are not supported.Arguments
|
Contains the topCell specified by the user or empty string if not specified. |
|
|
Contains the view specified by the user or empty string if not specified. |
Value Returned
None
Example
In this example, the function will print the values of lib, cell, and view.
procedure(poPreTranslate(lib cell view)
let((cv)
printf("In PreTranslate of Stream Out\n")
printf("Library: %s\n" lib)
printf("Cell: %s\n" cell)
printf("View: %s\n" view)
cv=dbOpenCellViewByType(lib cell view "maskLayout" "r")
;; modification in cv
);let
)
poPostTranslate
poPostTranslate(
lib
cell
view
)
Description
During StreamOut, this function is called just after the translation is completed.
Arguments
Value Returned
Example
In this example, the function will print the values of lib, cell, and view.
procedure( poPostTranslate( lib cell view )
prog( ( )
printf("In PostTranslate of Stream Out\n")
printf("Library: %s\n" lib)
printf("Cell: %s\n" cell)
printf("View: %s\n" view)
);prog
)
piPreTranslate
piPreTranslate(
lib
cell
view
)
Description
During XStream In translation, this function is called just before the translation starts.
Arguments
|
Contains the topCell specified by the user or empty string if not specified. |
|
|
Contains the view specified by the user or empty string if not specified. |
Value Returned
Example
In this example, the function will print the values of lib, cell, and view.
procedure( piPreTranslate( lib cell view )
prog( ( )
printf("In PreTranslate of Stream In\n")
printf("Library: %s\n" lib)
printf("Cell: %s\n" cell)
printf("View: %s\n" view)
);prog
)
piPostTranslate
piPostTranslate(
lib
cell
view
)
Description
During XStream In translation, this function is called just after the translation is completed. If the -topCell option is not specified, piPostTranslate is called with all the top cells found during Xstream In translation as a string of space separated names.
db, dd, tech, cst, abe, vfo (vfo.cxt), and pas (pdkutils.cxt) SKILL functions. Application specific functions such as le, hi, sch, lx, and via are not supported.
XStream In supports only following SKILL Core, db, dd, tech, and cst SKILL functions. Application specific functions, such as le, hi, sch, lx, via and so on are not supported.Arguments
Value Returned
Examples
Example 1
In this example, the function will print the values of lib, cell, and view.
procedure(piPostTranslate(lib cell view)
let((cv)
printf("In PostTranslate of Stream In\n")
printf("Library: %s\n" lib)
printf("Cell: %s\n" cell)
printf("View: %s\n" view)
cv=dbOpenCellViewByType(lib cell view "maskLayout" "a")
;; modification in cv
);let
)
Example 2
procedure(piPostTranslate(lib cell view)
let((c sumFile logFile)
if(listp(cell) == nil then
printf("\n piPostTranslate is called with topcell = (%s)\n" cell)
else
printf("\n piPostTranslate is called with topcell list = (")
foreach( c cell
printf(" %s" c)
)
printf(")\n")
)))
piPostTranslate is called with topcell = (topCell1 topCell2 topCell3)
GUI SKILL Functions
xstInOnCancel
xstInOnCancel()
Description
This is a user-defined function, which is called when user presses the Cancel button.
Arguments
Value Returned
Example
procedure( xstInOnCancel()
sprintf(“Translation canceled“)
);procedure
xstInOnTranslate
xstInOnTranslate()
Description
This is a user-defined function, which is called when user presses the Apply or Translate button.
Arguments
Value Returned
Example
procedure( xstInOnTranslate()
sprintf(“Starting Translation“)
);procedure
xstInOnCompletion
xstInOnCompletion(x_num)
Description
This is a user-defined function, which is called when the translation is completed.
Arguments
|
It is an integer parameter. If the translation is completed without any error, this value is zero. However, if error occurs during translation, this value is non-zero. |
Value Returned
Example
procedure( xstInOnCompletion( status )
fprintf(outPort "In xstInOnCompletion of XStream In GUI: %d\n" status)
if( status == 0 then
fprintf(outPort "Successfully completed\n" status)
else
fprintf(outPort "Error occured during translation\n" status)
);if
)
In this example, if the function is called with status value 0, it means that translation has completed successfully. However, if the function is called with a non-zero status value, it means that error occurred during translation.
xstOutOnCancel
xstOutOnCancel()
Description
This is a user-defined function, which is called when user presses the Cancel button.
Arguments
Value Returned
Example
procedure( xstOutOnCancel()
sprintf(“Translation canceled“)
);procedure
xstOutOnTranslate
xstOutOnTranslate()
Description
This is a user-defined function, which is called when user presses the Apply or Translate button.
Arguments
Value Returned
Example
procedure( xstOutOnTranslate()
sprintf(“Starting Translation“)
);procedure
xstOutOnCompletion
xstOutOnCompletion(x_num)
Description
This is a user-defined function, which is called when the translation is completed.
Arguments
|
It is an integer parameter. If the translation is completed without any error, this value is zero. However, if error occurs during translation, this value is non-zero. |
Value Returned
Example
procedure( xstOutOnCompletion( status )
fprintf(outPort "In xstOutOnCompletion of XStream Out GUI: %d\n"
status)
if( status == 0 then
fprintf(outPort "Successfully completed\n" status)
else
fprintf(outPort "Error occured during translation\n" status)
);if
)
In this example, if the function is called with status value 0, translation is completed successfully. However, if the function is called with a non-zero status value, it implies that error occurred during translation.
xstInGetField
xstInGetField(t_optionName) =>t_value/ nil
Description
Enables you to access GUI field values from the XStream In form. You can access all the GUI field values using the appropriate option name.
Arguments
|
The name of the field that needs to be accessed from the XStream In form. Valid values are the command line option name of the XStream In form field, |
Value Returned
|
The field name specified in the |
Example
Using SKILL commands, you can access the values specified in various fields, such as text box, check box, radio button, drop-down menu, and mapping tables, of the XStream In form. A few examples are given below:
-
Text box: To access the value specified in the Stream File field of the XStream In form, enter the following syntax in CIW:
xstInGetField("strmFile")=> "
test.gds" -
Check box: On the Geometry tab, if you want to access the value selected in the Ignore Box Records option, then you need to enter the following syntax in CIW:
xstInGetField("ignoreBoxes")=> "
This field returns a boolean value.true" -
Radio Button: On the General tab, if you want to access the value selected in Label Case Sensitivity option, then you need to enter the following syntax in CIW:
xstInGetField("labelCase")=> "
upper" -
Drop-down Menu: On the General tab, if you want to access the value selected from the Text Namespace drop-down menu, then you need to enter the following syntax in CIW:
xstInGetField("strmTextNS")=> "
This field returns a string value.verilog" -
Mapping Table: On the Layer tab, if you want to access the table with the layer map entries, then you need to enter the following syntax in CIW:
xstInGetField("layerMap")=> "
l.map"
xstGetField
xstGetField(t_optionName) =>t_value/ nil
Description
Enables you to access GUI field values from the XStream Out form. You can access all the GUI field values using the appropriate option name.
Arguments
|
The name of the field that needs to be accessed from the XStream Out form. Valid values are the command line option name of the XStream Out form field, |
Value Returned
|
The field name specified in the |
Example
If you want to access the value in the Stream File field in the XStream Out form, then you need to enter the following syntax in CIW:
xstGetField("strmFile")
=> "test.gds"
If you want to access the value selected in the Virtual Memory check box, then you need to enter the following syntax in CIW:
This field returns a boolean value.
xstInSetField
xstInSetField(t_optionNamet_value) => t / nil
Description
Enables you to populate GUI field values in the XStream In form. You can populate all the GUI field values using the appropriate option name and value.
Arguments
|
The name of the field that needs to be populated. Valid values are the command line option name of the XStream In form field, |
|
Value Returned
Example
Using SKILL commands, you can populate the values in various fields, such as text box, check box, radio button, drop-down menu, and mapping tables, of the XStream In form. A few examples are given below:
-
Text box: If you want to populate the Stream File field in the XStream In form, then you need to enter the following syntax in CIW:
xstInSetField("strmFile""test.gds") -
Check box: On the Geometry tab, if you want to select the Ignore Box Records option, then you need to enter the following syntax in CIW:
This field accepts the boolean value.xstInSetField("ignoreBoxes""true") -
Radio Button: On the General tab, if you want to select the Label Case Sensitivity option as upper, then you need to enter the following syntax in CIW:
xstInSetField("labelCase""upper") -
Drop-down Menu: On the General tab, if you want to select the verilog option from the Text Namespace drop-down menu, then you need to enter the following syntax in CIW:
This field accepts the string value.xstInSetField("strmTextNS""verilog") -
Mapping Table: On the Layer tab, if you want to populate the table with the layer map entries, then you need to enter the following syntax in CIW:
xstInSetField("layerMap""l.map")
xstSetField
xstSetField(
t_optionName
t_value
)
=> t / nil
Description
Enables you to populate GUI field values in the XStream Out form. You can populate all the GUI field values using the appropriate option name and value.
Arguments
|
The name of the field that needs to be populated in the XStream Out form. Valid values are the command line option name of the XStream In form field, |
|
Value Returned
Example
If you want to populate the Stream File field in the XStream Out form, then you need to enter the following syntax in CIW:
xstSetField("strmFile""test.gds")
However, there are some special cases where you want to strmout a copy of the design present in virtual memory. To do this, you need to select the Virtual Memory check box by using the following syntax in CIW:
xstSetField("virtualMemory" "true")
xstOutDoTranslate
xstOutDoTranslate()
Description
Issues the StreamOut command based on the GUI field values. By default, this function is a non-blocking function. However, if the Stream Out From Virtual Memory option is selected, then this function becomes a blocking function.
xstOutDoTranslate function, you need to either specify the values for both the Stream File and Library fields or the Cell List File field in the Stream Out form.Argument
Value Returned
nil
Example
In this example, you need to translate library,lib1to Stream File,out.gds. To do this, you need to execute the following functions:
xstSetField("strmFile" "out.gds")
xstSetField("library" "lib1")
xstOutDoTranslate()
xstInDoTranslate
xstInDoTranslate()
Description
Issues the StreamIn command based on the GUI field values. By default, this function is a non-blocking function. However, if the Stream In to Virtual Memory option is selected, then this function becomes a blocking function.
xstInDoTranslate function, you need to specify the value for the Stream File and specify the value for either Library fields or Stream Tech File field in the Stream In form.Argument
Value Returned
Example
In this example, you need to translate Stream File,in.gdsto library,lib1. To do this, you need to execute the following functions:
xstInSetField("strmFile" "in.gds")
xstInSetField("library" "lib1")
xstInDoTranslate()
xstInGetVMLibs
xstInGetVMLibs( ) => l_vmLibList / nil
Description
Returns the list of virtual memory libraries created by XStream In. Only the primary libraries created by XStream In are returned. The additional libraries that are created if the number of cellviews is more than the value specified in the Maximum Cells in Target Library field are not returned by this function.
Argument
Value Returned
Example
If XStream In is done in virtual memory mode and “vmLib” is the library name, then this library is created in virtual memory. In this case, xstGetVMLibs() returns “vmLib”.
xstInGetVMLibs()
=> ("vmLib")
xstInSaveVMLib
xstInSaveVMLib(t_vmLibName[t_path] ) => t / nil
Description
Saves the specified virtual memory library, t_vmLibName, to either the specified directory, t_path, or the current working directory, if t_path is not specified. Multiple libraries are created in a single translation using XStream In if the number of cellviews is more than the value specified in the Maximum Cells in Target Library field. All the libraries created during a single XStream In translation are also saved.
Argument
Value Returned
Example
If XStream In is done in virtual memory mode and “vmLib” is the library name, then this library is created in the virtual memory.
Now, xstSaveVMLib("vmLib" "/home/user") saves the library, “vmLib” to the directory, “/home/user”. If the operation is successful, this function returns “t”.
xstSaveVMLib("vmLib" "/home/user")
=> t
Callback Functions
xstInOnCancelCB
xstInOnCancelCB(
t_mode
S_callbackFunction
)
=> t / nil
Description
Registers or unregisters a user-defined callback function when you click the Cancel button on the XStream In form.
Arguments
|
Specifies mode to register or unregister the user-defined callback function. |
|
|
Name or function symbol of a user-defined callback function. |
|
Value Returned
Examples
Register the user-defined callback function myxstInOnCancel when the Cancel button is clicked on the XStream In form.
procedure( myxstInOnCancel()
print("Cancel button clicked")
)
xstInOnCancelCB("r" 'myxstInOnCancel)
xstInOnCancelCB("r" "myxstInOnCancel")
Unregister the user-defined callback function myxstInOnCancel when the Cancel button is clicked on the XStream In form.
procedure( myxstInOnCancel()
print("Cancel button clicked")
)
xstInOnCancelCB ("d" 'myxstInOnCancel)
xstInOnCancelCB("d" "myxstInOnCancel")
xstInOnCompletionCB
xstInOnCompletionCB(
t_mode
S_callbackFunction
)
=> t / nil
Description
Registers or unregisters a user-defined callback function when the XStream In translation is complete.
Arguments
|
Specifies mode to register or unregister the user-defined callback function. |
|
|
Name or function symbol of a user-defined callback function. |
|
Value Returned
Examples
Register the user-defined callback function myxstInOnCompletion when the XStream In translation is complete.
procedure( myxstInOnCompletion()
print("Translation completed with status %L")
)
xstInOnCompletionCB("r" 'myxstInOnCompletion)
xstInOnCompletionCB("r" "myxstInOnCompletion")
Unregister the user-defined callback function myxstInOnCompletion when the XStream In translation is complete.
procedure( myxstInOnCompletion()
print("Cancel button clicked")
)
xstInOnCompletionCB ("d" 'myxstInOnCompletion)
xstInOnCompletionCB("d" "myxstInOnCompletion")
xstInOnTranslateCB
xstInOnTranslateCB(
t_mode
S_callbackFunction
)
=> t / nil
Description
Registers or unregisters a user-defined callback function when you click the Apply or Translate button on the XStream In form
Arguments
|
Specifies mode to register or unregister the user-defined callback function. |
|
|
Name or function symbol of a user-defined callback function. |
|
Value Returned
Examples
Register the user-defined callback function myxstInOnTranslate when the XStream In translation is complete.
procedure( myxstInOnTranslate()
print("Translate button clicked")
)
xstInOnTranslateCB("r" 'myxstInOnTranslate)
xstInOnTranslateCB("r" "myxstInOnTranslate")
Unregister the user-defined callback function myxstInOnTranslate when the XStream In translation is complete.
procedure( myxstInOnTranslate()
print("Translate button clicked")
)
xstInOnTranslateCB ("d" 'myxstInOnTranslate)
xstInOnTranslateCB("d" "myxstInOnTranslate")
xstOutOnCancelCB
xstOutOnCancelCB(
t_mode
S_callbackFunction
)
=> t / nil
Description
Registers or unregisters a user-defined callback function when you click the Cancel button on the XStream Out form.
Arguments
|
Specifies mode to register or unregister the user-defined callback function. |
|
|
Name or function symbol of a user-defined callback function. |
|
Value Returned
Examples
Register the user-defined callback function myxstOutOnCancel when you click the Cancel button on the XStream Out form.
procedure( myxstOutOnCancel()
print("Cancel button clicked")
)
xstOutOnCancelCB("r" 'myxstOutOnCancel)
xstOutOnCancelCB("r" "myxstOutOnCancel")
Unregister the user-defined callback function myxstOutOnCancel when you click the Cancel button on the XStream Out form.
procedure( myxstInOnTranslate()
print("Cancel button clicked")
)
xstOutOnCancelCB("d" 'myxstOutOnCancel)
xstOutOnCancelCB("d" "myxstOutOnCancel")
xstOutOnCompletionCB
xstOutOnCompletionCB(
t_mode
S_callbackFunction
)
=> t / nil
Description
Registers or unregisters a user-defined callback function when the XStream Out translation is complete.
Arguments
|
Specifies mode to register or unregister the user-defined callback function. |
|
|
Name or function symbol of a user-defined callback function. |
|
Value Returned
Examples
Register the user-defined callback function myxstOutOnCompletion when the XStream Out translation is complete.
procedure( myxstOutOnCompletion()
print("Cancel button clicked")
)
xstOutOnCompletionCB("r" 'myxstOutOnCompletion)
xstOutOnCompletionCB("r" "myxstOutOnCompletion")
Unregister the user-defined callback function myxstOutOnCompletion when the XStream Out translation is complete.
procedure( myxstInOnCompletion()
print("Translation completed with status %L")
)
xstOutOnCompletionCB ("d" 'myxstOutOnCompletion)
xstOutOnCompletionCB("d" "myxstOutOnCompletion")
xstOutOnTranslateCB
xstOutOnTranslateCB(
t_mode
S_callbackFunction
)
=> t / nil
Description
Registers or unregisters a user-defined callback function when you click the Apply or Translate button on the XStream Out form
Arguments
|
Specifies mode to register or unregister the user-defined callback function. |
|
|
Name or function symbol of a user-defined callback function. |
|
Value Returned
Examples
Register the user-defined callback function myxstOutOnTranslate when the XStream Out translation is complete.
procedure( myxstOutOnTranslate()
print("Cancel button clicked")
)
xstOutOnTranslateCB("r" 'myxstOutOnTranslate)
xstOutOnTranslateCB("r" "myxstOutOnTranslate")
Unregister the user-defined callback function myxstOutOnTranslate when the XStream Out translation is complete.
procedure( myxstOutOnTranslate()
print("Cancel button clicked")
)
xstOutOnTranslateCB ("d" 'myxstOutOnTranslate)
xstOutOnTranslateCB("d" "myxstOutOnTranslate")
Return to top