1
2
3
4
5
6
7
8
9
10 #ifndef PCMK__CRM_COMMON_TICKETS_INTERNAL__H
11 #define PCMK__CRM_COMMON_TICKETS_INTERNAL__H
12
13 #include <stdint.h>
14 #include <sys/types.h>
15 #include <glib.h>
16
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #define pcmk__set_ticket_flags(ticket, flags_to_set) do { \
35 (ticket)->flags = pcmk__set_flags_as(__func__, __LINE__, \
36 LOG_TRACE, "Ticket", (ticket)->id, (ticket)->flags, \
37 (flags_to_set), #flags_to_set); \
38 } while (0)
39
40
41
42
43
44
45
46
47 #define pcmk__clear_ticket_flags(ticket, flags_to_clear) do { \
48 (ticket)->flags = pcmk__clear_flags_as(__func__, __LINE__, \
49 LOG_TRACE, "Ticket", (ticket)->id, (ticket)->flags, \
50 (flags_to_clear), #flags_to_clear); \
51 } while (0)
52
53 enum pcmk__ticket_flags {
54 pcmk__ticket_none = UINT32_C(0),
55 pcmk__ticket_granted = (UINT32_C(1) << 0),
56 pcmk__ticket_standby = (UINT32_C(1) << 1),
57 };
58
59
60 typedef struct {
61 char *id;
62 GHashTable *state;
63 time_t last_granted;
64 uint32_t flags;
65 } pcmk__ticket_t;
66
67 #ifdef __cplusplus
68 }
69 #endif
70
71 #endif