Update NEWS, README for 0.80.0
[dbus-python-phuang.git] / _dbus_bindings / types-internal.h
blobdab603d1c1354319ec9024b44d79db0ea6e13b79
1 /* D-Bus types: implementation internals
2  *
3  * Copyright (C) 2006 Collabora Ltd.
4  *
5  * Licensed under the Academic Free License version 2.1
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22  *
23  */
25 #include <Python.h>
26 #include <stdint.h>
28 #include "dbus_bindings-internal.h"
30 #ifndef DBUS_BINDINGS_TYPES_INTERNAL_H
31 #define DBUS_BINDINGS_TYPES_INTERNAL_H
33 extern PyTypeObject DBusPyIntBase_Type;
34 DEFINE_CHECK(DBusPyIntBase)
36 typedef struct {
37     PyIntObject base;
38     long variant_level;
39 } DBusPyIntBase;
41 extern PyTypeObject DBusPyLongBase_Type;
42 DEFINE_CHECK(DBusPyLongBase)
44 extern PyTypeObject DBusPyFloatBase_Type;
45 DEFINE_CHECK(DBusPyFloatBase)
47 typedef struct {
48     PyFloatObject base;
49     long variant_level;
50 } DBusPyFloatBase;
52 extern PyTypeObject DBusPyStrBase_Type;
53 DEFINE_CHECK(DBusPyStrBase)
55 dbus_int16_t dbus_py_int16_range_check(PyObject *);
56 dbus_uint16_t dbus_py_uint16_range_check(PyObject *);
57 dbus_int32_t dbus_py_int32_range_check(PyObject *);
58 dbus_uint32_t dbus_py_uint32_range_check(PyObject *);
60 #if defined(DBUS_HAVE_INT64) && defined(HAVE_LONG_LONG)
61 #   define DBUS_PYTHON_64_BIT_WORKS 1
62 dbus_int64_t dbus_py_int64_range_check(PyObject *);
63 dbus_uint64_t dbus_py_uint64_range_check(PyObject *);
64 #else
65 #   undef DBUS_PYTHON_64_BIT_WORKS
66 #endif /* defined(DBUS_HAVE_INT64) && defined(HAVE_LONG_LONG) */
68 extern PyObject *dbus_py_variant_level_const;
69 extern PyObject *dbus_py_signature_const;
70 extern PyObject *dbus_py__dbus_object_path__const;
72 typedef struct {
73     PyListObject super;
74     PyObject *signature;
75     long variant_level;
76 } DBusPyArray;
78 typedef struct {
79     PyDictObject super;
80     PyObject *signature;
81     long variant_level;
82 } DBusPyDict;
84 #endif