diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2007-08-02 21:04:10 +0200 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2007-08-02 21:04:10 +0200 |
commit | 714a595eb34406d75ce250477e7042c85c3ad95e (patch) | |
tree | fe108401b0266bb5874e17135d84db100cd45993 /objcl.lisp |
Beginnings of an Objective C bridge.
darcs-hash:907cb9b5f058df6c6697bc71a309edeb976998ff
Diffstat (limited to 'objcl.lisp')
-rw-r--r-- | objcl.lisp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/objcl.lisp b/objcl.lisp new file mode 100644 index 0000000..82ab250 --- /dev/null +++ b/objcl.lisp @@ -0,0 +1,40 @@ +(in-package #:mulk.objective-cl) + +(define-foreign-library libobjcl + (unix "/home/mulk/Dokumente/Projekte/Objective-CL/shared_obj/libobjcl.so")) + +(use-foreign-library libobjcl) + +(defctype pointer-array :pointer + "An array of void pointers.") + +#+nil +(defmethod translate-to-foreign ((vector vector) + (type (eql 'pointer-array))) + (foreign-alloc :pointer + :count (length vector) + :null-terminated-p nil + :initial-contents vector)) + +#+nil +(defmethod translate-from-foreign (foreign-value + (type (eql 'pointer-array))) + ) + + +(defcfun "objcl_initialise_runtime" :void) +(defcfun "objcl_shutdown_runtime" :void) +(defcfun "objcl_invoke_instance_method" :pointer + (receiver :pointer) + (method-name :string) + (argc :int) + &rest) + +(defcfun "objcl_invoke_class_method" :pointer + (receiver :void) + (method-name :string) + (argc :int) + &rest) + +(defcfun "objcl_find_class" :pointer + (class-name :string)) |