declaration/definition
define external result-type? function funcion-name argument-list? as external-name (in function-library library-name)?
External functions are functions written in other languages that you call from your OmniMark program. External functions must be defined in your program, just like regular functions, except that the definition will point to an external function library that contains the function, instead of containing the body of the function. Generally speaking, the person who wrote the external function will provide an OmniMark include file or module that contains the necessary function definitions. All you have to do is include or import the appropriate file and call the function normally.
The form of an external function definition is as follows:
define external switch function test-some-condition as "TestCond" in function-library "TestLib"
The in function-library
parameter can be omitted if you provide a declare function-library
statement to identify the function library in which the function is found.
declare function-library "TestLib" define external switch function test-some-condition as "TestCond"
An external string sink
function establishes a sink for an OmniMark program so that data can be written to a destination that OmniMark cannot address itself. In the example below, the external string sink
function establishes a sink for writing to a TCP/IP connection.
define external string sink function create-writer to value string destination-name as "CreateWriter"
To write to an external sink, open a stream with the function call after the as
in the open statement, and then establish the stream as current output:
local stream my-response open my-response as create-writer to "response" using output as my-response output "Mary had a little lamb.%n"