From 1f02d8409a50525ef8d2521047b39a88864f36ff Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Mon, 8 Sep 2003 22:06:28 +0000 Subject: [PATCH] missing run test git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5091 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/java/callback/main.java | 61 ++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Examples/java/callback/main.java diff --git a/Examples/java/callback/main.java b/Examples/java/callback/main.java new file mode 100644 index 000000000..9e7af267e --- /dev/null +++ b/Examples/java/callback/main.java @@ -0,0 +1,61 @@ +public class main +{ + static { + try { + System.loadLibrary("example"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String[] args) + { + System.out.println("Adding and calling a normal C++ callback"); + System.out.println("----------------------------------------"); + + Caller caller = new Caller(); + Callback callback = new Callback(); + + caller.setCallback(callback); + caller.call(); + caller.delCallback(); + + // Unlike Python, Java does not automatically support "weak" + // references (*), so we're left with managing the memory. + // + // (*) Yes, there is a WeakReference class, but it doesn't + // work exactly the way the Python weak reference works. + + callback.delete(); + + callback = new JavaCallback(); + + System.out.println(); + System.out.println("Adding and calling a Java callback"); + System.out.println("------------------------------------"); + + caller.setCallback(callback); + caller.call(); + caller.delCallback(); + + callback.delete(); + + System.out.println(); + System.out.println("java exit"); + } +} + +class JavaCallback extends Callback +{ + public JavaCallback() + { + super(); + } + + public void run() + { + System.out.println("JavaCallback.run()"); + } +} +