Using a cl_object in Lisp
"Stewart M." <sjm-mail-g/[email protected]>
| Newsgroups | gmane.lisp.ecl.general |
|---|---|
| Message-ID | <Ahy0WTFd1F9DK1PCEp7kJWQPVe1P3-h29jw2kxWCZw0pm4ln8f56y_LksJngH1WGd0hmlmikKP4bF1dly9iD4RCDV-8JCVJthaYvIE2_VWM=@protonmail.com> |
I am using CFFI with ECL to interface to a C++ library, which has a C++ class with a data member of type 'cl_object'. Simplified, my C++ code is:
class LispObject
{
public:
cl_object object;
};
extern "C" cl_object getObject(LispObject* lo) { return lo->object; }
extern "C" void setObject(LispObject* lo, cl_object clo) { lo->object = clo; }
The full code is:
https://common-lisp.net/viewvc/clive/trunk/src/extensions/corral/CliveCorral/LispObjectImpl.hpp?revision=149&view=markup#l59
Can I somehow declare the 'cl_object' type for the 'getValue()' and 'setValue()' functions using CFFI 'defcfun' to get and set ECL objects? Is there a technique using the lower-level FFI? I am looking for a way to do this without compiling C code embedded in Lisp, which I am aware ECL can do.
Thank you for any ideas!
--
Stewart Milberger
Kavalogic, Inc.