• Other language interfaces

    1.  Of course, numerous software capabilities are implemented by other programming languages.

    2.  When other capabilities are implemented as system commands, with file interfaces, roo!™ programs can interact with these.

    3.  Often, other capabilities must be accessed programmatically.

    4.  roo!™ provides capabilities for interfacing with programs that are written in C/C++ or Java.

    5.  These interfaces with programs written in other languages follows the pattern of Rexx procedures.

    6.  When invoked zero or more arguments are passed as strings, and a single string value is returned.

    • C/C++ interfacing

    • C/C++ external class

    1.  roo!™ can interface bidirectionally with C/C++ programs.

    2.  The ExternalClass built-in class enables a C/C++ dynamic link library to appear as though it were a roo!™ class.

    3.  Methods in a roo!™ class that are derived from the external class can provide methods that are invoked as callbacks.

    4.  The following diagram summarizes how the interface to a C/C++ ExternalClass operates:

    • C/C++ invocation of roo.dll capabilities

    1.  roo!™ capabilities are also offered in a dynamic link library (DLL) context.

    2.  Functional invocations can optionally offer a callback context.

    3.  Programs written in C/C++ can interact with roo!™ DLL capabilities as follows:

    • Java invocation of roo.dll capabilities

    1.  roo!™ DLL capabilities can also be accessed from Java programs.

    2.  Again, functional invocations can optionally offer a callback context.

    3.  Programs written in Java can interact with roo!™ DLL capabilities, using interfaces that are similar to those used by C/C++.