summaryrefslogtreecommitdiff
path: root/Examples/ocaml/string_from_ptr/example_prog.ml
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/ocaml/string_from_ptr/example_prog.ml
downloadswig-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.ml23
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