summaryrefslogtreecommitdiff
path: root/objcl.lisp
blob: 82ab2500be7d3d04b0921aed8dc0148504144280 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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))