[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Xavier Leroy <Xavier.Leroy@i...> |
| Subject: | Re: CamlIDL and string options. |
> 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/) lists some OCaml database bindings, but none for MySQL. - Xavier Leroy