/ src / libsmoke /
/src/libsmoke/method.lisp
1 (in-package #:smoke)
2
3 (defcenum smoke-method-flags
4 "Method flags"
5 (:static #x01)
6 (:const #x02)
7 (:copy-constructor #x04)
8 (:internal #x08)
9 (:enum #x10)
10 (:constructor #x20)
11 (:destructor #x40)
12 (:protected #x80)
13 (:attribute #x100)
14 (:property #x200)
15 (:virtual #x400)
16 (:purevirtual #x800)
17 (:signal #x1000)
18 (:slot #x2000))
19
20 (defcstruct smoke-method
21 "Describe a method"
22 (class smoke-index)
23 (name smoke-index)
24 (arguments smoke-index)
25 (num-args :unsigned-char)
26 (flags :unsigned-short)
27 (return-type smoke-index)
28 (method smoke-index))
29
30 (defcstruct smoke-method-map
31 "Maps a munged method."
32 (class-id smoke-index)
33 (name smoke-index)
34 (method smoke-index))
35
36 (declaim (inline smoke-find-method))
37 (defcfun (smoke-find-method "cl_smoke_find_method") :void
38 (m :pointer smoke-module-index)
39 (smoke :pointer)
40 (class smoke-index)
41 (method :string))