
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 argv[]) {


    int a = 37;
    int b = 42;

    // Now call our C function with a bunch of callbacks

    System.out.println( "Trying some C callback functions" );
    System.out.println( "    a        = " + a );
    System.out.println( "    b        = " + b );
    System.out.println( "    ADD(a,b) = " + example.do_op(a,b,example.ADD) );
    System.out.println( "    SUB(a,b) = " + example.do_op(a,b,example.SUB) );
    System.out.println( "    MUL(a,b) = " + example.do_op(a,b,example.MUL) );

    System.out.println( "Here is what the C callback function classes are called in Java" );
    System.out.println( "    ADD      = " + example.ADD.getClass().getName() );
    System.out.println( "    SUB      = " + example.SUB.getClass().getName() );
    System.out.println( "    MUL      = " + example.MUL.getClass().getName() );
  }
}
