| (* file: runme.ml |
| |
| This file illustrates cross-language polymorphism using directors. *) |
| |
| open Swig |
| open Example |
| |
| let new_OCamlCallback ob meth args = |
| match meth with |
| | "run" -> print_endline "OCamlCallback.run()"; C_void |
| | _ -> (invoke ob) meth args |
| |
| let caller = new_Caller '() |
| |
| let _ = print_endline "Adding and calling a normal C++ callback" |
| let _ = print_endline "----------------------------------------" |
| |
| let callback = new_Callback '() |
| let _ = caller -> "setCallback" (callback) |
| let _ = caller -> "call" () |
| let _ = caller -> "delCallback" () |
| |
| let _ = print_endline "\nAdding and calling an OCaml callback" |
| let _ = print_endline "------------------------------------" |
| |
| let callback = new_derived_object new_Callback (new_OCamlCallback) '() |
| let _ = caller -> "setCallback" (callback) |
| let _ = caller -> "call" () |
| let _ = caller -> "delCallback" () |
| let _ = print_endline "\nOCaml exit" |