forked from bloomberg/comdb2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
csctypes.h
74 lines (65 loc) · 2.99 KB
/
csctypes.h
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
#ifndef INCLUDED_TYPES_H
#define INCLUDED_TYPES_H
/*
* comdb2 data types - these should match the types in db/types.h
*/
// clang-format off
#define CLIENT_TYPES \
XMACRO_CLIENT_TYPE(CLIENT_MINTYPE, 0, "min") \
XMACRO_CLIENT_TYPE(CLIENT_UINT, 1, "uint") \
XMACRO_CLIENT_TYPE(CLIENT_INT, 2, "int") \
XMACRO_CLIENT_TYPE(CLIENT_REAL, 3, "real") \
XMACRO_CLIENT_TYPE(CLIENT_CSTR, 4, "cstr") \
XMACRO_CLIENT_TYPE(CLIENT_PSTR, 5, "pstr") \
XMACRO_CLIENT_TYPE(CLIENT_BYTEARRAY, 6, "byte") \
XMACRO_CLIENT_TYPE(CLIENT_PSTR2, 7, "pstr2") \
XMACRO_CLIENT_TYPE(CLIENT_BLOB, 8, "blob") \
XMACRO_CLIENT_TYPE(CLIENT_DATETIME, 9, "datetime") \
XMACRO_CLIENT_TYPE(CLIENT_INTVYM, 10, "intervalym") \
XMACRO_CLIENT_TYPE(CLIENT_INTVDS, 11, "intervalds") \
XMACRO_CLIENT_TYPE(CLIENT_VUTF8, 12, "vutf8") \
XMACRO_CLIENT_TYPE(CLIENT_BLOB2, 13, "blob2") \
XMACRO_CLIENT_TYPE(CLIENT_DATETIMEUS, 14, "datetimeus") \
XMACRO_CLIENT_TYPE(CLIENT_INTVDSUS, 15, "intervaldsus") \
XMACRO_CLIENT_TYPE(CLIENT_SEQUENCE, 16, "nextsequence") \
XMACRO_CLIENT_TYPE(CLIENT_FUNCTION, 17, "function") \
XMACRO_CLIENT_TYPE(CLIENT_MAXTYPE, 18, "max")
// clang-format on
/* CLIENT side types */
#ifdef XMACRO_CLIENT_TYPE
# undef XMACRO_CLIENT_TYPE
#endif
#define XMACRO_CLIENT_TYPE(a, b, c) a,
enum { CLIENT_TYPES };
#undef XMACRO_CLIENT_TYPE
#define XMACRO_CLIENT_TYPE(a, b, c) case a: client_type_to_str = c; break;
#define CLIENT_TYPE_TO_STR(type) \
({ \
char *client_type_to_str = "unknown"; \
switch (type) { \
CLIENT_TYPES \
} \
client_type_to_str; \
})
/* ONDISK types */
enum {
SERVER_MINTYPE = 100,
SERVER_UINT = 101,
SERVER_BINT = 102,
SERVER_BREAL = 103,
SERVER_BCSTR = 104,
SERVER_BYTEARRAY = 105,
SERVER_BLOB = 106,
SERVER_DATETIME = 107,
SERVER_INTVYM = 108,
SERVER_INTVDS = 109,
SERVER_VUTF8 = 110,
SERVER_DECIMAL = 111,
SERVER_BLOB2 = 112,
SERVER_DATETIMEUS = 113,
SERVER_INTVDSUS = 114,
SERVER_SEQUENCE = 115,
SERVER_FUNCTION = 116,
SERVER_MAXTYPE
};
#endif