File: callback.c

package info (click to toggle)
spring 104.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 47,512 kB
  • sloc: cpp: 391,093; ansic: 79,943; python: 12,356; java: 12,201; awk: 5,889; sh: 1,826; xml: 655; makefile: 486; perl: 405; php: 211; objc: 194; sed: 2
file content (66 lines) | stat: -rw-r--r-- 2,149 bytes parent folder | download | duplicates (7)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
typedef struct {
  PyObject_HEAD;
  const struct SSkirmishAICallback* callback; // C Callback Object
} PyAICallbackObject;

static PyTypeObject PyAICallback_Type;

PyObject*
PyAICallback_New(const struct SSkirmishAICallback* callback)
{
  PyAICallbackObject *self;
  self = (PyAICallbackObject *)PyAICallback_Type.tp_alloc(&PyAICallback_Type, 0);
  
  if (self)
  {
    self->callback=callback;
  }
  return (PyObject*)self;
}

{% for funcname in clbfuncs %}
PyObject*
{{funcname}}(PyObject* ob, PyObject* args)
{
  {{clbfuncs[funcname]}}
}
{% endfor %}

static PyMethodDef callback_methods[] = {
{% for funcname in clbfuncs %}
     {"{{funcname}}", (PyCFunction){{funcname}}, METH_VARARGS, "{{funcname}}" },
{% endfor %}
    {NULL}  /* Sentinel */
};

static PyTypeObject PyAICallback_Type = {
    PyObject_HEAD_INIT(NULL)
    0,                         /*ob_size*/
    "PyAICallback",            /*tp_name*/
    sizeof(PyAICallbackObject),/*tp_basicsize*/
    0,                         /*tp_itemsize*/
    0,                         /*tp_dealloc*/
    0,                         /*tp_print*/
    0,                         /*tp_getattr*/
    0,                         /*tp_setattr*/
    0,                         /*tp_compare*/
    0,                         /*tp_repr*/
    0,                         /*tp_as_number*/
    0,                         /*tp_as_sequence*/
    0,                         /*tp_as_mapping*/
    0,                         /*tp_hash */
    0,                         /*tp_call*/
    0,                         /*tp_str*/
    0,                         /*tp_getattro*/
    0,                         /*tp_setattro*/
    0,                         /*tp_as_buffer*/
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
    "callback object",           /* tp_doc */
    0,                         /* tp_traverse */
    0,                         /* tp_clear */
    0,                         /* tp_richcompare */
    0,                         /* tp_weaklistoffset */
    0,                         /* tp_iter */
    0,                         /* tp_iternext */
    callback_methods,             /* tp_methods */
};