MySQL  8.0.19
Source Code Documentation
gcs_plugin_messages.h
Go to the documentation of this file.
1 /* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
2 
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License, version 2.0,
5  as published by the Free Software Foundation.
6 
7  This program is also distributed with certain software (including
8  but not limited to OpenSSL) that is licensed under separate terms,
9  as designated in a particular file or component or in included license
10  documentation. The authors of MySQL hereby grant you an additional
11  permission to link the program and your derivative works with the
12  separately licensed software that they have included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef GCS_PLUGIN_MESSAGES_INCLUDED
24 #define GCS_PLUGIN_MESSAGES_INCLUDED
25 
26 /*
27  Since this file is used on unit tests, through member_info.h,
28  includes must set here and not through plugin_server_include.h.
29 */
30 #include <string>
31 #include <vector>
32 
33 #include "my_inttypes.h"
34 
35 /**
36  This is the base GCS plugin message.
37  It is composed by a fixed header and 1 or more payload items.
38 
39  The on-the-wire layout looks like this:
40 
41  +-----------------------------------+
42  | fixed header | payload |
43  +-----------------------------------+
44 
45  The on-the-wire representation of the message is:
46 
47  +-------------------+-----------+--------------------------------------+
48  | field | wire size | description |
49  +===================+===========+======================================+
50  | version | 4 bytes | protocol version |
51  | fixed_hdr_len | 2 bytes | length of the fixed header |
52  | message_len | 8 bytes | length of the message |
53  | cargo_type | 2 bytes | the cargo type in the payload |
54  +-------------------+-----------+--------------------------------------+
55  | payload_item_type | 2 bytes | the item type in the payload |
56  | payload_item_len | 8 bytes | length of the payload item |
57  | payload_item | X bytes | payload item |
58  +-------------------+-----------+--------------------------------------+
59 
60  The last tree lines can occur one or more times.
61 */
62 
64  public:
65  /**
66  The protocol version number.
67  */
68  static const int PLUGIN_GCS_MESSAGE_VERSION;
69 
70  /**
71  The protocol version number.
72  */
73  static const unsigned int WIRE_VERSION_SIZE;
74 
75  /**
76  The on-the-wire size of the header length field.
77  */
78  static const unsigned int WIRE_HD_LEN_SIZE;
79 
80  /**
81  The on-the-wire size of the message size field.
82  */
83  static const unsigned int WIRE_MSG_LEN_SIZE;
84 
85  /**
86  The on-the-wire size of the cargo type field.
87  */
88  static const unsigned int WIRE_CARGO_TYPE_SIZE;
89 
90  /**
91  The on-the-wire size of the fixed header.
92  */
93  static const unsigned int WIRE_FIXED_HEADER_SIZE;
94 
95  /**
96  The on-the-wire size of the each payload item type field.
97  */
98  static const unsigned int WIRE_PAYLOAD_ITEM_TYPE_SIZE;
99 
100  /**
101  The on-the-wire size of the each payload item size field.
102  */
103  static const unsigned int WIRE_PAYLOAD_ITEM_LEN_SIZE;
104 
105  /**
106  The on-the-wire size of the payload item header.
107  */
108  static const unsigned int WIRE_PAYLOAD_ITEM_HEADER_SIZE;
109 
110  /**
111  The different cargo type codes.
112 
113  NOTE: all type values must fit into WIRE_CARGO_TYPE_SIZE bytes storage.
114  */
116  // This type should not be used anywhere.
118 
119  // This cargo type is used for certification events, GTID_EXECUTED
120  // broadcast.
122 
123  // This cargo type is used for transaction data.
125 
126  // This cargo type is used for recovery events, signal when a given member
127  // becomes online.
129 
130  // This cargo type is used for messaging related to stage exchanges,
131  // on which it represents one member.
133 
134  // This cargo type is used for messaging related to stage exchanges,
135  // on which it represents a set of members.
137 
138  // This cargo type is used for messaging related to members pipeline
139  // stats.
141 
142  // This cargo type is used for messaging related to single primary
143  // mode.
145 
146  // This cargo type is used for messaging related to group coordinated
147  // actions.
149 
150  // This cargo type is used for messaging when checking if a group is valid
151  // for some task
153 
154  // This cargo type is used for synchronization before executing a
155  // transation.
157 
158  // This cargo type is used for transaction data with guarantee.
160 
161  // This cargo type is used to inform about prepared transactions.
163 
164  // This cargo type is used for messages that are for
165  // senders/consumers outside the GR plugin.
167 
168  // No valid type codes can appear after this one.
169  CT_MAX = 14
170  };
171 
172  private:
173  /**
174  This header instance protocol version.
175  */
177 
178  /**
179  This header instance length.
180  */
181  unsigned short m_fixed_header_len;
182 
183  /**
184  This is the message length field.
185  */
186  unsigned long long m_msg_len;
187 
188  /**
189  The cargo type code.
190  */
192 
193  public:
194  virtual ~Plugin_gcs_message() {}
195 
196  /**
197  @return the value of the version field.
198  */
199  int get_version() { return m_version; }
200 
201  /**
202  @return the value of the header length field value.
203  */
204  unsigned short get_header_length() { return m_fixed_header_len; }
205 
206  /**
207  @return the cargo type.
208  */
210 
211  /**
212  @return the message length field value.
213  */
214  unsigned long long get_msg_length() { return m_msg_len; }
215 
216  /**
217  Encodes the contents of this instance into the buffer.
218 
219  @param[out] buffer the buffer to encode to.
220  */
221  void encode(std::vector<unsigned char> *buffer) const;
222 
223  /**
224  Decodes the contents of the buffer and sets the field values
225  according to the values decoded.
226 
227  @param[in] buffer the buffer to decode from.
228  @param[in] length the length of the buffer.
229  */
230  void decode(const unsigned char *buffer, size_t length);
231 
232  /**
233  Return the cargo type of a given message buffer, without decode
234  the complete message.
235 
236  @param[in] buffer the buffer to decode from.
237 
238  @return the cargo type of a given message buffer
239  */
240  static enum_cargo_type get_cargo_type(const unsigned char *buffer);
241 
242  /**
243  Return the raw data of the first payload item of a given message buffer,
244  without decode the complete message.
245 
246  @param[out] buffer the buffer to decode from.
247  @param[out] payload_item_data the data.
248  @param[out] payload_item_length the length of the data.
249  */
251  const unsigned char *buffer, const unsigned char **payload_item_data,
252  size_t *payload_item_length);
253 
254  protected:
255  /**
256  Plugin_gcs_message constructor. Only to be called by derivative classes
257 
258  @param[in] cargo_type Message type to be sent
259  */
260  explicit Plugin_gcs_message(enum_cargo_type cargo_type);
261 
262  /**
263  Encodes the contents of this instance payload into the buffer.
264 
265  @param[out] buffer the buffer to encode to.
266  */
267  virtual void encode_payload(std::vector<unsigned char> *buffer) const = 0;
268 
269  /**
270  Decodes the contents of the buffer and sets the payload field
271  values according to the values decoded.
272 
273  @param[in] buffer the buffer to decode from.
274  @param[in] end the end of the buffer.
275  */
276  virtual void decode_payload(const unsigned char *buffer,
277  const unsigned char *end) = 0;
278 
279  /**
280  Encodes the given payload item type and length into the buffer.
281 
282  @param[out] buffer the buffer to encode to
283  @param[in] payload_item_type the type of the payload item
284  @param[in] payload_item_length the length of the payload item
285  */
287  std::vector<unsigned char> *buffer, uint16 payload_item_type,
288  unsigned long long payload_item_length) const;
289 
290  /**
291  Decodes the given payload item type and length from the buffer.
292 
293  @param[in] buffer the buffer to encode from
294  @param[out] payload_item_type the type of the payload item
295  @param[out] payload_item_length the length of the payload item
296  */
298  const unsigned char **buffer, uint16 *payload_item_type,
299  unsigned long long *payload_item_length);
300 
301  /**
302  Encodes the given payload item (type, length and value) into the buffer as
303  a char (1 byte).
304 
305  @param[out] buffer the buffer to encode to
306  @param[in] type the type of the payload item
307  @param[in] value the value of the payload item
308  */
309  void encode_payload_item_char(std::vector<unsigned char> *buffer, uint16 type,
310  unsigned char value) const;
311 
312  /**
313  Decodes the given payload item (type, length and value) from the buffer as
314  a char (1 byte).
315 
316  @param[in] buffer the buffer to encode from
317  @param[out] type the type of the payload item
318  @param[out] value the value of the payload item
319  */
320  static void decode_payload_item_char(const unsigned char **buffer,
321  uint16 *type, unsigned char *value);
322 
323  /**
324  Encodes the given payload item (type, length and value) into the buffer as
325  a 2 bytes integer.
326 
327  @param[out] buffer the buffer to encode to
328  @param[in] type the type of the payload item
329  @param[in] value the value of the payload item
330  */
331  void encode_payload_item_int2(std::vector<unsigned char> *buffer, uint16 type,
332  uint16 value) const;
333 
334  /**
335  Decodes the given payload item (type, length and value) from the buffer as
336  a 2 bytes integer.
337 
338  @param[in] buffer the buffer to encode from
339  @param[out] type the type of the payload item
340  @param[out] value the value of the payload item
341  */
342  void decode_payload_item_int2(const unsigned char **buffer, uint16 *type,
343  uint16 *value);
344 
345  /**
346  Encodes the given payload item (type, length and value) into the buffer as
347  a 4 bytes integer.
348 
349  @param[out] buffer the buffer to encode to
350  @param[in] type the type of the payload item
351  @param[in] value the value of the payload item
352  */
353  void encode_payload_item_int4(std::vector<unsigned char> *buffer, uint16 type,
354  uint32 value) const;
355 
356  /**
357  Decodes the given payload item (type, length and value) from the buffer as
358  a 4 bytes integer.
359 
360  @param[in] buffer the buffer to encode from
361  @param[out] type the type of the payload item
362  @param[out] value the value of the payload item
363  */
364  void decode_payload_item_int4(const unsigned char **buffer, uint16 *type,
365  uint32 *value);
366 
367  /**
368  Encodes the given payload item (type, length and value) into the buffer as
369  a 8 bytes integer.
370 
371  @param[out] buffer the buffer to encode to
372  @param[in] type the type of the payload item
373  @param[in] value the value of the payload item
374  */
375  void encode_payload_item_int8(std::vector<unsigned char> *buffer, uint16 type,
376  ulonglong value) const;
377 
378  /**
379  Decodes the given payload item (type, length and value) from the buffer as
380  a 8 bytes integer.
381 
382  @param[in] buffer the buffer to encode from
383  @param[out] type the type of the payload item
384  @param[out] value the value of the payload item
385  */
386  void decode_payload_item_int8(const unsigned char **buffer, uint16 *type,
387  uint64 *value);
388 
389  /**
390  Encodes the given payload item (type, length and value) into the buffer as
391  a char array (variable size).
392 
393  @param[out] buffer the buffer to encode to
394  @param[in] type the type of the payload item
395  @param[in] value the value of the payload item
396  @param[in] length the length of the payload item
397  */
398  void encode_payload_item_string(std::vector<unsigned char> *buffer,
399  uint16 type, const char *value,
400  unsigned long long length) const;
401 
402  /**
403  Decodes the given payload item (type, length and value) from the buffer as
404  a char array (variable size).
405 
406  @param[in] buffer the buffer to encode from
407  @param[out] type the type of the payload item
408  @param[out] value the value of the payload item
409  @param[out] length the length of the payload item
410  */
411  void decode_payload_item_string(const unsigned char **buffer, uint16 *type,
412  std::string *value,
413  unsigned long long *length);
414 
415  /**
416  Encodes the given payload item (type, length and value) into the buffer as
417  a byte buffer (variable size).
418 
419  @param[out] buffer the buffer to encode to
420  @param[in] type the type of the payload item
421  @param[in] value the value of the payload item
422  @param[in] length the length of the payload item
423  */
424  void encode_payload_item_bytes(std::vector<unsigned char> *buffer,
425  uint16 type, const unsigned char *value,
426  unsigned long long length) const;
427 
428  /**
429  Decodes the given payload item (type, length and value) from the buffer as
430  a byte buffer (variable size).
431 
432  @param[in] buffer the buffer to encode from
433  @param[out] type the type of the payload item
434  @param[out] value the value of the payload item
435  @param[out] length the length of the payload item
436  */
437  void decode_payload_item_bytes(const unsigned char **buffer, uint16 *type,
438  unsigned char *value,
439  unsigned long long *length);
440 };
441 
442 #endif /* GCS_PLUGIN_MESSAGES_INCLUDED */
Plugin_gcs_message::decode_payload_item_bytes
void decode_payload_item_bytes(const unsigned char **buffer, uint16 *type, unsigned char *value, unsigned long long *length)
Decodes the given payload item (type, length and value) from the buffer as a byte buffer (variable si...
Definition: gcs_plugin_messages.cc:267
Plugin_gcs_message::get_version
int get_version()
Definition: gcs_plugin_messages.h:199
Plugin_gcs_message::encode
void encode(std::vector< unsigned char > *buffer) const
Encodes the contents of this instance into the buffer.
Definition: gcs_plugin_messages.cc:55
Plugin_gcs_message::CT_PIPELINE_STATS_MEMBER_MESSAGE
@ CT_PIPELINE_STATS_MEMBER_MESSAGE
Definition: gcs_plugin_messages.h:140
Plugin_gcs_message::CT_GROUP_VALIDATION_MESSAGE
@ CT_GROUP_VALIDATION_MESSAGE
Definition: gcs_plugin_messages.h:152
Plugin_gcs_message::m_cargo_type
enum_cargo_type m_cargo_type
The cargo type code.
Definition: gcs_plugin_messages.h:191
Plugin_gcs_message::CT_TRANSACTION_MESSAGE
@ CT_TRANSACTION_MESSAGE
Definition: gcs_plugin_messages.h:124
uint64
uint64_t uint64
Definition: my_inttypes.h:68
Plugin_gcs_message::get_first_payload_item_raw_data
static void get_first_payload_item_raw_data(const unsigned char *buffer, const unsigned char **payload_item_data, size_t *payload_item_length)
Return the raw data of the first payload item of a given message buffer, without decode the complete ...
Definition: gcs_plugin_messages.cc:116
Plugin_gcs_message::CT_SINGLE_PRIMARY_MESSAGE
@ CT_SINGLE_PRIMARY_MESSAGE
Definition: gcs_plugin_messages.h:144
value
const string value("\"Value\"")
Plugin_gcs_message::decode_payload_item_int4
void decode_payload_item_int4(const unsigned char **buffer, uint16 *type, uint32 *value)
Decodes the given payload item (type, length and value) from the buffer as a 4 bytes integer.
Definition: gcs_plugin_messages.cc:208
Plugin_gcs_message::decode_payload_item_type_and_length
static void decode_payload_item_type_and_length(const unsigned char **buffer, uint16 *payload_item_type, unsigned long long *payload_item_length)
Decodes the given payload item type and length from the buffer.
Definition: gcs_plugin_messages.cc:144
Plugin_gcs_message::encode_payload_item_string
void encode_payload_item_string(std::vector< unsigned char > *buffer, uint16 type, const char *value, unsigned long long length) const
Encodes the given payload item (type, length and value) into the buffer as a char array (variable siz...
Definition: gcs_plugin_messages.cc:238
Plugin_gcs_message::enum_cargo_type
enum_cargo_type
The different cargo type codes.
Definition: gcs_plugin_messages.h:115
Plugin_gcs_message::PLUGIN_GCS_MESSAGE_VERSION
static const int PLUGIN_GCS_MESSAGE_VERSION
The protocol version number.
Definition: gcs_plugin_messages.h:68
Plugin_gcs_message::Plugin_gcs_message
Plugin_gcs_message(enum_cargo_type cargo_type)
Plugin_gcs_message constructor.
Definition: gcs_plugin_messages.cc:49
Plugin_gcs_message::get_header_length
unsigned short get_header_length()
Definition: gcs_plugin_messages.h:204
Plugin_gcs_message::CT_MEMBER_INFO_MESSAGE
@ CT_MEMBER_INFO_MESSAGE
Definition: gcs_plugin_messages.h:132
Plugin_gcs_message::m_version
int m_version
This header instance protocol version.
Definition: gcs_plugin_messages.h:176
Plugin_gcs_message::decode_payload_item_string
void decode_payload_item_string(const unsigned char **buffer, uint16 *type, std::string *value, unsigned long long *length)
Decodes the given payload item (type, length and value) from the buffer as a char array (variable siz...
Definition: gcs_plugin_messages.cc:247
my_inttypes.h
Plugin_gcs_message::WIRE_PAYLOAD_ITEM_TYPE_SIZE
static const unsigned int WIRE_PAYLOAD_ITEM_TYPE_SIZE
The on-the-wire size of the each payload item type field.
Definition: gcs_plugin_messages.h:98
Plugin_gcs_message::WIRE_PAYLOAD_ITEM_LEN_SIZE
static const unsigned int WIRE_PAYLOAD_ITEM_LEN_SIZE
The on-the-wire size of the each payload item size field.
Definition: gcs_plugin_messages.h:103
Plugin_gcs_message::WIRE_MSG_LEN_SIZE
static const unsigned int WIRE_MSG_LEN_SIZE
The on-the-wire size of the message size field.
Definition: gcs_plugin_messages.h:83
Plugin_gcs_message::encode_payload_item_char
void encode_payload_item_char(std::vector< unsigned char > *buffer, uint16 type, unsigned char value) const
Encodes the given payload item (type, length and value) into the buffer as a char (1 byte).
Definition: gcs_plugin_messages.cc:156
Plugin_gcs_message::get_cargo_type
enum_cargo_type get_cargo_type() const
Definition: gcs_plugin_messages.h:209
Plugin_gcs_message::encode_payload_item_int4
void encode_payload_item_int4(std::vector< unsigned char > *buffer, uint16 type, uint32 value) const
Encodes the given payload item (type, length and value) into the buffer as a 4 bytes integer.
Definition: gcs_plugin_messages.cc:198
Plugin_gcs_message::CT_MEMBER_INFO_MANAGER_MESSAGE
@ CT_MEMBER_INFO_MANAGER_MESSAGE
Definition: gcs_plugin_messages.h:136
Plugin_gcs_message::get_msg_length
unsigned long long get_msg_length()
Definition: gcs_plugin_messages.h:214
Plugin_gcs_message::decode_payload_item_char
static void decode_payload_item_char(const unsigned char **buffer, uint16 *type, unsigned char *value)
Decodes the given payload item (type, length and value) from the buffer as a char (1 byte).
Definition: gcs_plugin_messages.cc:167
Plugin_gcs_message::encode_payload_item_int2
void encode_payload_item_int2(std::vector< unsigned char > *buffer, uint16 type, uint16 value) const
Encodes the given payload item (type, length and value) into the buffer as a 2 bytes integer.
Definition: gcs_plugin_messages.cc:178
Plugin_gcs_message::encode_payload_item_int8
void encode_payload_item_int8(std::vector< unsigned char > *buffer, uint16 type, ulonglong value) const
Encodes the given payload item (type, length and value) into the buffer as a 8 bytes integer.
Definition: gcs_plugin_messages.cc:218
Plugin_gcs_message::CT_CERTIFICATION_MESSAGE
@ CT_CERTIFICATION_MESSAGE
Definition: gcs_plugin_messages.h:121
Plugin_gcs_message::CT_TRANSACTION_PREPARED_MESSAGE
@ CT_TRANSACTION_PREPARED_MESSAGE
Definition: gcs_plugin_messages.h:162
rules_table_service::end
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:188
Plugin_gcs_message::m_fixed_header_len
unsigned short m_fixed_header_len
This header instance length.
Definition: gcs_plugin_messages.h:181
uint32
uint32_t uint32
Definition: my_inttypes.h:66
Plugin_gcs_message::m_msg_len
unsigned long long m_msg_len
This is the message length field.
Definition: gcs_plugin_messages.h:186
Plugin_gcs_message::decode
void decode(const unsigned char *buffer, size_t length)
Decodes the contents of the buffer and sets the field values according to the values decoded.
Definition: gcs_plugin_messages.cc:78
Plugin_gcs_message::encode_payload_item_bytes
void encode_payload_item_bytes(std::vector< unsigned char > *buffer, uint16 type, const unsigned char *value, unsigned long long length) const
Encodes the given payload item (type, length and value) into the buffer as a byte buffer (variable si...
Definition: gcs_plugin_messages.cc:257
Plugin_gcs_message::CT_SYNC_BEFORE_EXECUTION_MESSAGE
@ CT_SYNC_BEFORE_EXECUTION_MESSAGE
Definition: gcs_plugin_messages.h:156
HttpMethod::type
int type
Definition: http_common.h:411
Plugin_gcs_message::encode_payload_item_type_and_length
void encode_payload_item_type_and_length(std::vector< unsigned char > *buffer, uint16 payload_item_type, unsigned long long payload_item_length) const
Encodes the given payload item type and length into the buffer.
Definition: gcs_plugin_messages.cc:128
gis::length
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
Plugin_gcs_message::CT_GROUP_ACTION_MESSAGE
@ CT_GROUP_ACTION_MESSAGE
Definition: gcs_plugin_messages.h:148
Plugin_gcs_message::decode_payload_item_int8
void decode_payload_item_int8(const unsigned char **buffer, uint16 *type, uint64 *value)
Decodes the given payload item (type, length and value) from the buffer as a 8 bytes integer.
Definition: gcs_plugin_messages.cc:228
Plugin_gcs_message::decode_payload
virtual void decode_payload(const unsigned char *buffer, const unsigned char *end)=0
Decodes the contents of the buffer and sets the payload field values according to the values decoded.
Plugin_gcs_message::WIRE_CARGO_TYPE_SIZE
static const unsigned int WIRE_CARGO_TYPE_SIZE
The on-the-wire size of the cargo type field.
Definition: gcs_plugin_messages.h:88
Plugin_gcs_message::decode_payload_item_int2
void decode_payload_item_int2(const unsigned char **buffer, uint16 *type, uint16 *value)
Decodes the given payload item (type, length and value) from the buffer as a 2 bytes integer.
Definition: gcs_plugin_messages.cc:188
Plugin_gcs_message::CT_MAX
@ CT_MAX
Definition: gcs_plugin_messages.h:169
uint16
uint16_t uint16
Definition: my_inttypes.h:64
ulonglong
unsigned long long int ulonglong
Definition: my_inttypes.h:55
Plugin_gcs_message::CT_MESSAGE_SERVICE_MESSAGE
@ CT_MESSAGE_SERVICE_MESSAGE
Definition: gcs_plugin_messages.h:166
Plugin_gcs_message::~Plugin_gcs_message
virtual ~Plugin_gcs_message()
Definition: gcs_plugin_messages.h:194
Plugin_gcs_message::CT_TRANSACTION_WITH_GUARANTEE_MESSAGE
@ CT_TRANSACTION_WITH_GUARANTEE_MESSAGE
Definition: gcs_plugin_messages.h:159
Plugin_gcs_message::WIRE_FIXED_HEADER_SIZE
static const unsigned int WIRE_FIXED_HEADER_SIZE
The on-the-wire size of the fixed header.
Definition: gcs_plugin_messages.h:93
Plugin_gcs_message::WIRE_HD_LEN_SIZE
static const unsigned int WIRE_HD_LEN_SIZE
The on-the-wire size of the header length field.
Definition: gcs_plugin_messages.h:78
buffer
char buffer[STRING_BUFFER]
Definition: test_sql_9_sessions.cc:57
Plugin_gcs_message::encode_payload
virtual void encode_payload(std::vector< unsigned char > *buffer) const =0
Encodes the contents of this instance payload into the buffer.
Plugin_gcs_message::WIRE_PAYLOAD_ITEM_HEADER_SIZE
static const unsigned int WIRE_PAYLOAD_ITEM_HEADER_SIZE
The on-the-wire size of the payload item header.
Definition: gcs_plugin_messages.h:108
Plugin_gcs_message::CT_RECOVERY_MESSAGE
@ CT_RECOVERY_MESSAGE
Definition: gcs_plugin_messages.h:128
Plugin_gcs_message
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:63
Plugin_gcs_message::CT_UNKNOWN
@ CT_UNKNOWN
Definition: gcs_plugin_messages.h:117
Plugin_gcs_message::WIRE_VERSION_SIZE
static const unsigned int WIRE_VERSION_SIZE
The protocol version number.
Definition: gcs_plugin_messages.h:73