| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 Unix SMB/CIFS implementation. | |
| 3 Samba utility functions | |
| 4 Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008 | |
| 5 | |
| 6 This program is free software; you can redistribute it and/or modify | |
| 7 it under the terms of the GNU General Public License as published by | |
| 8 the Free Software Foundation; either version 3 of the License, or | |
| 9 (at your option) any later version. | |
| 10 | |
| 11 This program is distributed in the hope that it will be useful, | |
| 12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 GNU General Public License for more details. | |
| 15 | |
| 16 You should have received a copy of the GNU General Public License | |
| 17 along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 18 */ | |
| 19 | |
| 20 #ifndef _PY_TALLOC_H_ | |
| 21 #define _PY_TALLOC_H_ | |
| 22 | |
| 23 #include <Python.h> | |
| 24 #include <talloc.h> | |
| 25 | |
| 26 typedef struct { | |
| 27 PyObject_HEAD | |
| 28 TALLOC_CTX *talloc_ctx; | |
| 29 void *ptr; | |
| 30 } py_talloc_Object; | |
| 31 | |
| 32 /* Deallocate a py_talloc_Object */ | |
| 33 void py_talloc_dealloc(PyObject* self); | |
| 34 | |
| 35 /* Retrieve the pointer for a py_talloc_object. Like talloc_get_type() | |
| 36 * but for py_talloc_Objects. */ | |
| 37 | |
| 38 /* FIXME: Call PyErr_SetString(PyExc_TypeError, "expected " __STR(type) ") | |
| 39 * when talloc_get_type() returns NULL. */ | |
| 40 #define py_talloc_get_type(py_obj, type) (talloc_get_type(py_talloc_get_ptr(py_o
bj), type)) | |
| 41 | |
| 42 #define py_talloc_get_ptr(py_obj) (((py_talloc_Object *)py_obj)->ptr) | |
| 43 #define py_talloc_get_mem_ctx(py_obj) ((py_talloc_Object *)py_obj)->talloc_ctx | |
| 44 | |
| 45 PyObject *py_talloc_steal_ex(PyTypeObject *py_type, TALLOC_CTX *mem_ctx, void *p
tr); | |
| 46 PyObject *py_talloc_reference_ex(PyTypeObject *py_type, TALLOC_CTX *mem_ctx, voi
d *ptr); | |
| 47 #define py_talloc_steal(py_type, talloc_ptr) py_talloc_steal_ex(py_type, talloc_
ptr, talloc_ptr) | |
| 48 #define py_talloc_reference(py_type, talloc_ptr) py_talloc_reference_ex(py_type,
talloc_ptr, talloc_ptr) | |
| 49 | |
| 50 /* Sane default implementation of reprfunc. */ | |
| 51 PyObject *py_talloc_default_repr(PyObject *py_obj); | |
| 52 | |
| 53 #define py_talloc_new(type, typeobj) py_talloc_steal(typeobj, talloc_zero(NULL,
type)) | |
| 54 | |
| 55 PyObject *PyCObject_FromTallocPtr(void *); | |
| 56 | |
| 57 #endif /* _PY_TALLOC_H_ */ | |
| OLD | NEW |