~ibmcharmers/charms/xenial/ibm-db2/trunk

« back to all changes in this revision

Viewing changes to .tox/py35/include/python3.5m/structmember.h

  • Committer: Rajith Venkata
  • Date: 2017-02-22 09:37:48 UTC
  • Revision ID: rajith.pv@in.ibm.com-20170222093748-fibtdsahuug31ra5
2ndcheckin for IBM-DB2 charm

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef Py_STRUCTMEMBER_H
 
2
#define Py_STRUCTMEMBER_H
 
3
#ifdef __cplusplus
 
4
extern "C" {
 
5
#endif
 
6
 
 
7
 
 
8
/* Interface to map C struct members to Python object attributes */
 
9
 
 
10
#include <stddef.h> /* For offsetof */
 
11
 
 
12
/* An array of PyMemberDef structures defines the name, type and offset
 
13
   of selected members of a C structure.  These can be read by
 
14
   PyMember_GetOne() and set by PyMember_SetOne() (except if their READONLY
 
15
   flag is set).  The array must be terminated with an entry whose name
 
16
   pointer is NULL. */
 
17
 
 
18
typedef struct PyMemberDef {
 
19
    char *name;
 
20
    int type;
 
21
    Py_ssize_t offset;
 
22
    int flags;
 
23
    char *doc;
 
24
} PyMemberDef;
 
25
 
 
26
/* Types */
 
27
#define T_SHORT     0
 
28
#define T_INT       1
 
29
#define T_LONG      2
 
30
#define T_FLOAT     3
 
31
#define T_DOUBLE    4
 
32
#define T_STRING    5
 
33
#define T_OBJECT    6
 
34
/* XXX the ordering here is weird for binary compatibility */
 
35
#define T_CHAR      7   /* 1-character string */
 
36
#define T_BYTE      8   /* 8-bit signed int */
 
37
/* unsigned variants: */
 
38
#define T_UBYTE     9
 
39
#define T_USHORT    10
 
40
#define T_UINT      11
 
41
#define T_ULONG     12
 
42
 
 
43
/* Added by Jack: strings contained in the structure */
 
44
#define T_STRING_INPLACE    13
 
45
 
 
46
/* Added by Lillo: bools contained in the structure (assumed char) */
 
47
#define T_BOOL      14
 
48
 
 
49
#define T_OBJECT_EX 16  /* Like T_OBJECT, but raises AttributeError
 
50
                           when the value is NULL, instead of
 
51
                           converting to None. */
 
52
#ifdef HAVE_LONG_LONG
 
53
#define T_LONGLONG      17
 
54
#define T_ULONGLONG     18
 
55
#endif /* HAVE_LONG_LONG */
 
56
 
 
57
#define T_PYSSIZET      19      /* Py_ssize_t */
 
58
#define T_NONE          20      /* Value is always None */
 
59
 
 
60
 
 
61
/* Flags */
 
62
#define READONLY            1
 
63
#define READ_RESTRICTED     2
 
64
#define PY_WRITE_RESTRICTED 4
 
65
#define RESTRICTED          (READ_RESTRICTED | PY_WRITE_RESTRICTED)
 
66
 
 
67
 
 
68
/* Current API, use this */
 
69
PyAPI_FUNC(PyObject *) PyMember_GetOne(const char *, struct PyMemberDef *);
 
70
PyAPI_FUNC(int) PyMember_SetOne(char *, struct PyMemberDef *, PyObject *);
 
71
 
 
72
 
 
73
#ifdef __cplusplus
 
74
}
 
75
#endif
 
76
#endif /* !Py_STRUCTMEMBER_H */