summaryrefslogtreecommitdiff
path: root/objcl.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2007-08-02 21:04:10 +0200
committerMatthias Benkard <code@mail.matthias.benkard.de>2007-08-02 21:04:10 +0200
commit714a595eb34406d75ce250477e7042c85c3ad95e (patch)
treefe108401b0266bb5874e17135d84db100cd45993 /objcl.lisp
Beginnings of an Objective C bridge.
darcs-hash:907cb9b5f058df6c6697bc71a309edeb976998ff
Diffstat (limited to 'objcl.lisp')
-rw-r--r--objcl.lisp40
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))