libUPnP 1.14.19
generator.h
1#ifndef GENERATOR_H
2#define GENERATOR_H
3
4#define ARRAY_SIZE(a) (sizeof(a) / sizeof 0 [a])
5
6enum e_Type
7{
8 TYPE_CLASS = 0,
9 TYPE_INTEGER,
10 TYPE_BUFFER,
11 TYPE_LIST,
12 TYPE_STRING,
13 TYPE_DOMSTRING
14};
15
17{
18 const char *int_type;
19};
20
22{
23 const char *name;
24 enum e_Type type;
25 const char *type_name;
26 const char *header;
27};
28
29/* clang-format off */
30#define INIT_MEMBER(NAME, TYPE, TYPE_NAME, HEADER) \
31 { \
32 .name = #NAME, \
33 .type = TYPE, \
34 .type_name = #TYPE_NAME, \
35 .header = HEADER \
36 }
37/* clang-format on */
38
39struct s_Class
40{
41 const char *name;
42 unsigned n_members;
43 struct s_Member *members;
44 const char *source;
45 const char *header;
46};
47
48/* clang-format off */
49#define INIT_CLASS(CLASS) \
50 { \
51 .name = #CLASS, \
52 .n_members = ARRAY_SIZE(CLASS##_members), \
53 .members = CLASS##_members, \
54 .source = #CLASS ".c", \
55 .header = #CLASS ".h", \
56 }
57/* clang-format on */
58
59#endif /* GENERATOR_H */
Definition generator.h:40
Definition generator.h:22
Definition generator.h:17