• Other language interfaces
Of course, numerous software capabilities are implemented by other programming languages.
When other capabilities are implemented as system commands, with file interfaces, roo! programs can interact with these.
Often, other capabilities must be accessed programmatically.
roo! provides capabilities for interfacing with programs that are written in C/C++ or Java.
These interfaces with programs written in other languages follows the pattern of Rexx procedures.
When invoked zero or more arguments are passed as strings, and a single string value is returned.
• C/C++ interfacing
• C/C++ external class
roo! can interface bidirectionally with C/C++ programs.
The ExternalClass built-in class enables a C/C++ dynamic link library to appear as though it were a roo! class.
Methods in a roo! class that are derived from the external class can provide methods that are invoked as callbacks.
The following diagram summarizes how the interface to a C/C++ ExternalClass operates:
• C/C++ invocation of roo.dll capabilities
roo! capabilities are also offered in a dynamic link library (DLL) context.
Functional invocations can optionally offer a callback context.
Programs written in C/C++ can interact with roo! DLL capabilities as follows:
• Java invocation of roo.dll capabilities
roo! DLL capabilities can also be accessed from Java programs.
Again, functional invocations can optionally offer a callback context.
Programs written in Java can interact with roo! DLL capabilities, using interfaces that are similar to those used by C/C++.