summaryrefslogtreecommitdiffstats
path: root/Tools/modulator/Templates/object_structure
blob: 6a54518643bae80a3e794abd6ac1d150eb601e93 (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
41
/* Code to access structure members by accessing attributes */

#include "structmember.h"

#define OFF(x) offsetof(XXXXobject, x)

static struct memberlist $abbrev$_memberlist[] = {
	/* XXXX Add lines like { "foo", T_INT, OFF(foo), RO }  */
	{NULL}	/* Sentinel */
};

static object *
$abbrev$_getattr(self, name)
	$abbrev$object *self;
	char *name;
{
	object *rv;
	
	/* XXXX Add your own getattr code here */
	rv = getmember((char *)/*XXXX*/0, $abbrev$_memberlist, name);
	if (rv)
		return rv;
	err_clear();
	return findmethod($abbrev$_methods, (object *)self, name);
}


static int
$abbrev$_setattr(self, name, v)
	$abbrev$object *self;
	char *name;
	object *v;
{
	/* XXXX Add your own setattr code here */
	if ( v == NULL ) {
		err_setstr(AttributeError, "Cannot delete attribute");
		return -1;
	}
	return setmember((char *)/*XXXX*/0, $abbrev$_memberlist, name, v);
}