> I'm trying to write a camlidl interface for a function that returns a
> char *. I want the ML result to be a string option. If the returned
> pointer is null, then return None, otherwise return the string it
> points to in Some.
>
> I can make it work, but only by writing my own c2ml routine
I'm afraid this is the only solution with the current CamlIDL. C strings
([string] char *) are treated internally like a special case of arrays
([string] char []), and arrays are assumed not to be "NULL" pointers.
In particular, the "obvious" CamlIDL declaration [string,unique] char *
doesn't work because the "unique" attribute is ignored.
I'll keep that in mind for future versions of CamlIDL.
> In actuality, the function is more complicated than even this. It
> actually returns a char**. There is a function available that returns
> the number of char*'s in it. There is another function that returns
> the length of each char* (provided they aren't NULL).
It looks like you'll really have to write a specialized c2ml routine!
I'm willing to help; just send me (personally, not to the list) some
more details on the C API you're interfacing with.
> The other possibility is that someone else has already written an
> interface of MySQL, and I'm duplicating their effort.
The Caml Hump (http://caml.inria.fr/pub/old_caml_site/) lists some OCaml database bindings,
but none for MySQL.
- Xavier Leroy
This archive was generated by hypermail 2b29 : Thu Feb 24 2000 - 15:35:29 MET