diff options
| author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2009-08-18 20:56:02 +0000 |
|---|---|---|
| committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-09-25 16:59:08 +0000 |
| commit | 9f8a09ed743cedd9547bf0661d518647966ab114 (patch) | |
| tree | 9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/ocaml/string_from_ptr/example_prog.ml | |
| download | swig-tarball-master.tar.gz | |
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/ocaml/string_from_ptr/example_prog.ml')
| -rw-r--r-- | Examples/ocaml/string_from_ptr/example_prog.ml | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Examples/ocaml/string_from_ptr/example_prog.ml b/Examples/ocaml/string_from_ptr/example_prog.ml new file mode 100644 index 0000000..8069dc2 --- /dev/null +++ b/Examples/ocaml/string_from_ptr/example_prog.ml @@ -0,0 +1,23 @@ +(* foo_program.ml -- the program using foolib *) + +open Swig (* Give access to the swig library *) +open Foolib (* This is the name of your swig output *) + +let results = _foo '() (* Function names are prefixed with _ in order to make + them lex as identifiers in ocaml. Consider that + uppercase identifiers are module names in ocaml. + NOTE: the '() syntax is part of swigp4. You can do: + let results = _foo C_void *) + +(* Since your function has a return value in addition to the string output, + you'll need to match them as a list *) + +let result_string = + match results with + C_list [ C_string result_string ; C_int 0 ] -> (* The return value is + last when out arguments appear, but this too can be customized. + We're also checking that the function succeeded. *) + result_string + | _ -> raise (Failure "Expected string, int reply from _foo") + +let _ = print_endline result_string |
