[cffi-devel] Using `define-foreign-type' as defclass
The manual says that `define-foreign-type' is "a thin wrapper macro around defclass." Knowing that, I've been using it as a way to define new classes, like `easy-handle' at section 4.11, but instead of creating a new class and naming a slot `pointer', I'm doing something like: (define-foreign-type easy-handle (a-parent-foreign-type/class) ((pointer :initform (curl-easy-init))) (:actual-type :pointer) (:simple-parser easy-handle)) It works, be as the manual separate these things, I wonder: Am I using it wrong?
On Mon, Aug 27, 2012 at 10:04 AM, Diogo F. S. Ramos <diogofsr@gmail.com> wrote:
(define-foreign-type easy-handle (a-parent-foreign-type/class) ((pointer :initform (curl-easy-init))) (:actual-type :pointer) (:simple-parser easy-handle))
It works, be as the manual separate these things, I wonder: Am I using it wrong?
Say you now go ahead and use EASY-HANDLE as follows: (defcfun foo :void (handle easy-handle)) When FOO is compiled, CFFI will instantiate an EASY-HANDLE and poke it to determine things like the basic C type it translates. Your definition is not adequate because it'll call CURL-EASY-INIT at this point. HTH, -- Luís Oliveira http://r42.eu/~luis/
participants (2)
-
diogofsr@gmail.com
-
Luís Oliveira