/**** Callbacks.java ************************************************
**
** This is an example of JNI on the Macintosh it implements the
** classic "Callbacks" example.
**
** The problem of mixing the SIOUX console with the MRJ console was
** describe in the file "HelloWorld.java". In order to eliminate both
** the problem of having two consoles as well as having to include the
** SIOUX environment in the shared library I extended the example to
** also use a callback method for printing to the MRJ console. That
** method is called "print".
**
**
** Will Gilbert, Informagen, Inc., 1999
** Gilbert@Informagen.com
*/
class Callbacks {
private native void nativeMethod(int depth);
private void callback(int depth) {
if ( depth < 5 ) {
print("Java", depth , ", about to enter C.");
nativeMethod(depth + 1);
print("Java", depth , ", back from C.");
} else
System.out.println("In Java, depth = " + depth +
", limit exceeded.");
}
private void print(String in, int inDepth, String from) {
System.out.println("In " + in + ", depth = " + inDepth + from);
}
public static void main(String[] args) {
try {
System.loadLibrary("Callbacks");
} catch ( UnsatisfiedLinkError e) {
System.out.println("Error: " + e.getMessage());
return;
}
Callbacks c = new Callbacks();
c.nativeMethod(0);
}
}