11 #ifndef _gcs_state_msg_h_
12 #define _gcs_state_msg_h_
15 #include "gcs_seqno.h"
16 #include "gcs_act_proto.h"
22 #define GCS_STATE_FREP 0x01 // group representative
23 #define GCS_STATE_FCLA 0x02 // count last applied (for JOINED node)
24 #define GCS_STATE_FBOOTSTRAP 0x04 // part of prim bootstrap process
25 #define GCS_STATE_ARBITRATOR 0x08 // arbitrator or otherwise incomplete node
27 #ifdef GCS_STATE_MSG_ACCESS
28 typedef struct gcs_state_msg
33 gcs_seqno_t prim_seqno;
43 gcs_node_state_t prim_state;
44 gcs_node_state_t current_state;
49 typedef struct gcs_state_msg gcs_state_msg_t;
66 #define GCS_QUORUM_NON_PRIMARY (gcs_state_quorum_t){ \
74 extern gcs_state_msg_t*
75 gcs_state_msg_create (
const gu_uuid_t* state_uuid,
76 const gu_uuid_t* group_uuid,
77 const gu_uuid_t* prim_uuid,
78 gcs_seqno_t prim_seqno,
82 gcs_node_state_t prim_state,
83 gcs_node_state_t current_state,
92 gcs_state_msg_destroy (gcs_state_msg_t* state);
96 gcs_state_msg_len (gcs_state_msg_t* state);
100 gcs_state_msg_write (
void* msg,
const gcs_state_msg_t* state);
103 extern gcs_state_msg_t*
104 gcs_state_msg_read (
const void* msg, ssize_t msg_len);
107 extern const gu_uuid_t*
108 gcs_state_msg_uuid (
const gcs_state_msg_t* state);
111 extern const gu_uuid_t*
112 gcs_state_msg_group_uuid (
const gcs_state_msg_t* state);
120 gcs_state_msg_received (
const gcs_state_msg_t* state);
124 gcs_state_msg_cached (
const gcs_state_msg_t* state);
127 extern gcs_node_state_t
128 gcs_state_msg_current_state (
const gcs_state_msg_t* state);
131 extern gcs_node_state_t
132 gcs_state_msg_prim_state (
const gcs_state_msg_t* state);
136 gcs_state_msg_name (
const gcs_state_msg_t* state);
140 gcs_state_msg_inc_addr (
const gcs_state_msg_t* state);
144 gcs_state_msg_get_proto_ver (
const gcs_state_msg_t* state,
147 int* appl_proto_ver);
151 gcs_state_msg_flags (
const gcs_state_msg_t* state);
161 gcs_state_msg_get_quorum (
const gcs_state_msg_t* states[],
167 gcs_state_msg_snprintf (
char* str,
size_t size,
const gcs_state_msg_t* msg);
int gcs_proto_ver
state excahnge version (max understood by all)
Definition: gcs_state_msg.h:60
int version
primary configuration or not
Definition: gcs_state_msg.h:59
bool primary
configuration id
Definition: gcs_state_msg.h:58
gcs_seqno_t conf_id
next global seqno
Definition: gcs_state_msg.h:57
gcs_seqno_t act_id
group UUID
Definition: gcs_state_msg.h:56
Definition: gcs_state_msg.h:53