-
Notifications
You must be signed in to change notification settings - Fork 69
/
callback_types.c
76 lines (61 loc) · 2.7 KB
/
callback_types.c
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
67
68
69
70
71
72
73
74
75
76
#include "callbacks.h"
/************************************************************
*** Macros
************************************************************/
// Macros to define common identity id_type() functions to test arguments and return types
#define simple_callback_f(TYPE) simple_callback_with_name_f(TYPE, TYPE)
#define simple_callback_with_name_f(TYPE, NAME) EXPORT(void) simple_callback_f_##NAME(simple_callback_##NAME fun, TYPE value){ \
fun(value); \
}
#define simple_callback_byRef_f(TYPE) simple_callback_byRef_with_name_f(TYPE, TYPE)
#define simple_callback_byRef_with_name_f(TYPE, NAME) EXPORT(void) simple_callback_byRef_f_##NAME(simple_callback_byRef_##NAME fun, TYPE* value){ \
fun(value); \
}
#define simple_callback_byCopy_and_ref_f(TYPE) simple_callback_f(TYPE) \
simple_callback_byRef_f(TYPE)
/************************************************************
*** Floating point number types
************************************************************/
simple_callback_f(float)
simple_callback_f(double)
/************************************************************
*** Character types
************************************************************/
simple_callback_f(char)
simple_callback_with_name_f(unsigned char, uchar)
/************************************************************
*** Signed Integer types
************************************************************/
simple_callback_f(short)
simple_callback_f(int)
simple_callback_f(int8_t)
simple_callback_f(int16_t)
simple_callback_f(int32_t)
simple_callback_f(int64_t)
simple_callback_f(long)
simple_callback_with_name_f(long long, longlong)
/************************************************************
*** Unsigned Integer types
************************************************************/
simple_callback_with_name_f(unsigned short, ushort)
simple_callback_with_name_f(unsigned int, uint)
simple_callback_f(uint8_t)
simple_callback_f(uint16_t)
simple_callback_f(uint32_t)
simple_callback_f(uint64_t)
simple_callback_with_name_f(unsigned long, ulong)
simple_callback_with_name_f(unsigned long long, ulonglong)
/************************************************************
*** Pointer types
************************************************************/
simple_callback_with_name_f(void*, pointer)
/************************************************************
*** Struct types
************************************************************/
simple_callback_byCopy_and_ref(NESTED_STRUCTS)
simple_callback_byCopy_and_ref(LONG_STRUCT)
simple_callback_byCopy_and_ref(OUR_POINT)
/************************************************************
*** Derived types, e.g., size_t, String, etc
************************************************************/
simple_callback_f(size_t)