MySQL 9.0.0
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 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_MAX_STAGES = 6
}
 The different stages that are currently available. More...
 
enum class  Cargo_type : unsigned short { CT_UNKNOWN = 0 , CT_INTERNAL_STATE_EXCHANGE = 1 , CT_USER_DATA = 2 , CT_MAX = 3 }
 The different cargo type codes. More...
 

Enumeration Type Documentation

◆ Cargo_type

enum class 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 class 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_LZ4_V3 
ST_SPLIT_V3 
ST_MAX_STAGES