1#ifndef OBJC_INSTANCE_VAR
2#define OBJC_INSTANCE_VAR
3
4typedef struct {
5	PyObject_HEAD
6	char* name;      /* Name of the instance variable */
7	char* type;      /* Type of the instance variable for definition only */
8	int   isOutlet;
9	int   isSlot;
10	Ivar   ivar;
11} PyObjCInstanceVariable;
12
13
14extern PyTypeObject PyObjCInstanceVariable_Type;
15#define PyObjCInstanceVariable_Check(obj) PyObject_TypeCheck((obj), &PyObjCInstanceVariable_Type)
16
17PyObject* PyObjCInstanceVariable_New(char* name);
18int	  PyObjCInstanceVariable_SetName(PyObject* self, PyObject* name);
19
20#define PyObjCInstanceVariable_IsOutlet(obj) \
21	(((PyObjCInstanceVariable*)(obj))->isOutlet)
22#define PyObjCInstanceVariable_IsSlot(obj) \
23	(((PyObjCInstanceVariable*)(obj))->isSlot)
24#define PyObjCInstanceVariable_GetName(obj) \
25	(((PyObjCInstanceVariable*)(obj))->name)
26#define PyObjCInstanceVariable_GetType(obj) \
27	(((PyObjCInstanceVariable*)(obj))->type)
28
29PyObject* PyObjCIvar_Info(PyObject* self, PyObject* arg);
30PyObject* PyObjCIvar_Set(PyObject* self, PyObject* args, PyObject* kwds);
31PyObject* PyObjCIvar_Get(PyObject* self, PyObject* args, PyObject* kwds);
32
33
34
35#endif /* OBJC_INSTANCE_VAR */
36