MySQL  8.0.22
Source Code Documentation
gcs_internal_message_headers.h File Reference
#include <limits>
#include <memory>
#include <sstream>
#include <type_traits>
#include "plugin/group_replication/libmysqlgcs/include/mysql/gcs/gcs_types.h"

Go to the source code of this file.

Classes

class  Gcs_internal_message_header
 This header is internal to the MySQL GCS library and contains metadata information about the message content. More...
 
class  Gcs_dynamic_header
 This is a default header created per stage and contains information to decode it. More...
 
class  Gcs_stage_metadata
 Abstract class that defines specific metadata associated to a stage if it decides to extend it. More...
 
class  Gcs_empty_stage_metadata
 Empty metadata for stages that do not require any metadata. More...
 

Enumerations

enum  Stage_code : unsigned int {
  Stage_code::ST_UNKNOWN = 0, Stage_code::ST_LZ4_V1 = 1, Stage_code::ST_LZ4_V2 = 2, Stage_code::ST_SPLIT_V2 = 3,
  Stage_code::ST_MAX_STAGES = 4
}
 The different stages that are currently available. More...
 
enum  Cargo_type : unsigned short { Cargo_type::CT_UNKNOWN = 0, Cargo_type::CT_INTERNAL_STATE_EXCHANGE = 1, Cargo_type::CT_USER_DATA = 2, Cargo_type::CT_MAX = 3 }
 The different cargo type codes. More...
 

Enumeration Type Documentation

◆ Cargo_type

enum Cargo_type : unsigned short
strong

The different cargo type codes.

Enumerator
CT_UNKNOWN 
CT_INTERNAL_STATE_EXCHANGE 
CT_USER_DATA 
CT_MAX 

◆ Stage_code

enum Stage_code : unsigned int
strong

The different stages that are currently available.

Any time a new stage is created, the old stages must be added to this enumeration class as new stages as follows. Let us assume that these are the current stages:

enum class Stage_code : unsigned int { ST_UNKNOWN = 0,

ST_LZ4_V1 = 1,

ST_LZ4_V2 = 2,

ST_SPLIT_V2 = 3,

ST_MAX_STAGES = 4 };

If a new stage is added meaning that the protocol has changed, the enumeration class should be changed as follows:

enum class Stage_code : unsigned int { ST_UNKNOWN = 0,

ST_LZ4_V1 = 1,

ST_LZ4_V2 = 2,

ST_SPLIT_V2 = 3,

ST_LZ4_V3 = 4,

ST_SPLIT_V3 = 5,

ST_NEW_V3 = 6,

ST_MAX_STAGES = 7 };

Enumerator
ST_UNKNOWN 
ST_LZ4_V1 
ST_LZ4_V2 
ST_SPLIT_V2 
ST_MAX_STAGES