it offers exactly the same functionality.
Calling [new guestfs ()] creates both the object and the handle.
+ The object and handle are closed either implicitly when the
+ object is garbage collected, or explicitly by calling the [g#close ()]
+ method.
+
+ You can get the {!Guestfs.t} handle by calling [g#ocaml_handle].
Note that methods that take no parameters (except the implicit handle)
get an extra unit [()] parameter. This is so you can create a
method close : unit -> unit
method set_progress_callback : progress_cb -> unit
method clear_progress_callback : unit -> unit
+ method ocaml_handle : t
";
List.iter (
method close () = close g
method set_progress_callback = set_progress_callback g
method clear_progress_callback () = clear_progress_callback g
+ method ocaml_handle = g
";
List.iter (
pr " char *%s = guestfs_safe_strdup (g, String_val (%sv));\n" n n
| OptString n ->
pr " char *%s =\n" n;
- pr " %sv != Val_int (0) ?" n;
+ pr " %sv != Val_int (0) ?\n" n;
pr " guestfs_safe_strdup (g, String_val (Field (%sv, 0))) : NULL;\n" n
| BufferIn n ->
pr " size_t %s_size = caml_string_length (%sv);\n" n n;