Browse thread
[Caml-list] Caml Wrappers
- Ravi Chamarty
[
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: | Ravi Chamarty <ravi@i...> |
| Subject: | [Caml-list] Caml Wrappers |
Hi ,
I am trying to write OCaml interfaces around a C library. I tried
looking at the Unix library and trying to understand it. However, I have
much complex data types to deal with.I was wondering if anyone could help
me out.
Here is a signature of one of the C functions:
an_flow_t *
an_flow_create(void *mem, an_cred_t *cred, an_cpuspec_t *cspec,
an_memspec_t *mspec, an_flowinit_func_t init,
void *initarg, an_flowterm_func_t term)
Each of these types are complex structures in C. How do I represent these
in OCaml. Is it useful to use classes and methods? Or do I use abstract
types to represent them ?
An example of one of these structures is given below:
struct an_flow_t {
struct hnode me; /* flow hier link (must be first) */
struct ani_cred *cred; /* credentials */
struct ani_mempool *mpool; /* mempool */
struct ani_chan *chanlist; /* list of channels */
struct ani_threadpool tpool; /* thread pool */
int flags; /* various flags */
an_flowterm_func_t termfunc; /* termination function */
ani_resource_t res; /* reserved resources */
int refs; /* reference count */
ani_ilock_t lock; /* mutual exclusion */
an_flowstats_t stats; /* statistics */
};
I would be grateful for any help.
Thanks
Ravi
-------------------
To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr