MySQL  8.0.19
Source Code Documentation
Group_action_message Class Reference

#include <group_action_message.h>

Inheritance diagram for Group_action_message:
Plugin_gcs_message

Public Types

enum  enum_payload_item_type {
  PIT_UNKNOWN = 0, PIT_ACTION_TYPE = 1, PIT_ACTION_PHASE = 2, PIT_ACTION_RETURN_VALUE = 3,
  PIT_ACTION_PRIMARY_ELECTION_UUID = 4, PIT_ACTION_SET_COMMUNICATION_PROTOCOL_VERSION = 5, PIT_MAX = 5
}
 
enum  enum_action_message_type {
  ACTION_UNKNOWN_MESSAGE = 0, ACTION_MULTI_PRIMARY_MESSAGE = 1, ACTION_PRIMARY_ELECTION_MESSAGE = 2, ACTION_SET_COMMUNICATION_PROTOCOL_MESSAGE = 3,
  ACTION_MESSAGE_END = 4
}
 Enum for the types of message / actions. More...
 
enum  enum_action_message_phase {
  ACTION_UNKNOWN_PHASE = 0, ACTION_START_PHASE = 1, ACTION_END_PHASE = 2, ACTION_ABORT_PHASE = 3,
  ACTION_PHASE_END = 4
}
 Enum for the phase of the action in the message. More...
 
- Public Types inherited from Plugin_gcs_message
enum  enum_cargo_type {
  CT_UNKNOWN = 0, CT_CERTIFICATION_MESSAGE = 1, CT_TRANSACTION_MESSAGE = 2, CT_RECOVERY_MESSAGE = 3,
  CT_MEMBER_INFO_MESSAGE = 4, CT_MEMBER_INFO_MANAGER_MESSAGE = 5, CT_PIPELINE_STATS_MEMBER_MESSAGE = 6, CT_SINGLE_PRIMARY_MESSAGE = 7,
  CT_GROUP_ACTION_MESSAGE = 8, CT_GROUP_VALIDATION_MESSAGE = 9, CT_SYNC_BEFORE_EXECUTION_MESSAGE = 10, CT_TRANSACTION_WITH_GUARANTEE_MESSAGE = 11,
  CT_TRANSACTION_PREPARED_MESSAGE = 12, CT_MESSAGE_SERVICE_MESSAGE = 13, CT_MAX = 14
}
 The different cargo type codes. More...
 

Public Member Functions

 Group_action_message ()
 Message constructor. More...
 
 Group_action_message (enum_action_message_type type)
 Message constructor. More...
 
 Group_action_message (std::string &primary_uuid)
 Message constructor for ACTION_PRIMARY_ELECTION_MESSAGE action type. More...
 
 Group_action_message (Gcs_protocol_version gcs_protocol)
 Message constructor for ACTION_SET_COMMUNICATION_PROTOCOL_MESSAGE action type. More...
 
virtual ~Group_action_message ()
 Message destructor. More...
 
 Group_action_message (const uchar *buf, size_t len)
 Message constructor for raw data. More...
 
enum_action_message_type get_group_action_message_type ()
 Returns this group action message type. More...
 
enum_action_message_phase get_group_action_message_phase ()
 Returns this group action message phase. More...
 
void set_group_action_message_phase (enum_action_message_phase phase)
 
void set_return_value (int return_value_arg)
 Set the return value for this message. More...
 
int32 get_return_value ()
 
const std::string & get_primary_to_elect_uuid ()
 Returns this group action primary to be elected uuid. More...
 
const Gcs_protocol_versionget_gcs_protocol ()
 Returns the GCS protocol this group action wants the group to change to. More...
 
- Public Member Functions inherited from Plugin_gcs_message
virtual ~Plugin_gcs_message ()
 
int get_version ()
 
unsigned short get_header_length ()
 
enum_cargo_type get_cargo_type () const
 
unsigned long long get_msg_length ()
 
void encode (std::vector< unsigned char > *buffer) const
 Encodes the contents of this instance into the buffer. More...
 
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. More...
 

Static Public Member Functions

static enum_action_message_type get_action_type (const uchar *buf)
 Check what is the action that this message encodes from a buffer. More...
 
- Static Public Member Functions inherited from Plugin_gcs_message
static enum_cargo_type get_cargo_type (const unsigned char *buffer)
 Return the cargo type of a given message buffer, without decode the complete message. More...
 
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 message. More...
 

Protected Member Functions

void encode_payload (std::vector< unsigned char > *buffer) const
 Encodes the message contents for transmission. More...
 
void decode_payload (const unsigned char *buffer, const unsigned char *end)
 Message decoding method. More...
 
- Protected Member Functions inherited from Plugin_gcs_message
 Plugin_gcs_message (enum_cargo_type cargo_type)
 Plugin_gcs_message constructor. More...
 
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. More...
 
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). More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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 size). More...
 
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 size). More...
 
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 size). More...
 
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 size). More...
 

Private Attributes

enum_action_message_type group_action_type
 The action type for this message. More...
 
enum_action_message_phase group_action_phase
 If it is a start, stop or other message. More...
 
int32 return_value
 Is there any return value associated to this action. More...
 
std::string primary_election_uuid
 The uuid for election, can be empty if not defined. More...
 
Gcs_protocol_version gcs_protocol
 The GCS protocol version to change to. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Plugin_gcs_message
static const int PLUGIN_GCS_MESSAGE_VERSION = 1
 The protocol version number. More...
 
static const unsigned int WIRE_VERSION_SIZE = 4
 The protocol version number. More...
 
static const unsigned int WIRE_HD_LEN_SIZE = 2
 The on-the-wire size of the header length field. More...
 
static const unsigned int WIRE_MSG_LEN_SIZE = 8
 The on-the-wire size of the message size field. More...
 
static const unsigned int WIRE_CARGO_TYPE_SIZE = 2
 The on-the-wire size of the cargo type field. More...
 
static const unsigned int WIRE_FIXED_HEADER_SIZE
 The on-the-wire size of the fixed header. More...
 
static const unsigned int WIRE_PAYLOAD_ITEM_TYPE_SIZE = 2
 The on-the-wire size of the each payload item type field. More...
 
static const unsigned int WIRE_PAYLOAD_ITEM_LEN_SIZE = 8
 The on-the-wire size of the each payload item size field. More...
 
static const unsigned int WIRE_PAYLOAD_ITEM_HEADER_SIZE
 The on-the-wire size of the payload item header. More...
 
- Static Protected Member Functions inherited from Plugin_gcs_message
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. More...
 
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). More...
 

Member Enumeration Documentation

◆ enum_action_message_phase

Enum for the phase of the action in the message.

Enumerator
ACTION_UNKNOWN_PHASE 
ACTION_START_PHASE 
ACTION_END_PHASE 
ACTION_ABORT_PHASE 
ACTION_PHASE_END 

◆ enum_action_message_type

Enum for the types of message / actions.

Enumerator
ACTION_UNKNOWN_MESSAGE 
ACTION_MULTI_PRIMARY_MESSAGE 
ACTION_PRIMARY_ELECTION_MESSAGE 
ACTION_SET_COMMUNICATION_PROTOCOL_MESSAGE 
ACTION_MESSAGE_END 

◆ enum_payload_item_type

Enumerator
PIT_UNKNOWN 
PIT_ACTION_TYPE 
PIT_ACTION_PHASE 
PIT_ACTION_RETURN_VALUE 
PIT_ACTION_PRIMARY_ELECTION_UUID 
PIT_ACTION_SET_COMMUNICATION_PROTOCOL_VERSION 
PIT_MAX 

Constructor & Destructor Documentation

◆ Group_action_message() [1/5]

Group_action_message::Group_action_message ( )

Message constructor.

◆ Group_action_message() [2/5]

Group_action_message::Group_action_message ( enum_action_message_type  type)

Message constructor.

Parameters
[in]typethe action message type

◆ Group_action_message() [3/5]

Group_action_message::Group_action_message ( std::string &  primary_uuid)

Message constructor for ACTION_PRIMARY_ELECTION_MESSAGE action type.

Parameters
[in]primary_uuidthe primary uuid to elect

◆ Group_action_message() [4/5]

Group_action_message::Group_action_message ( Gcs_protocol_version  gcs_protocol)
explicit

Message constructor for ACTION_SET_COMMUNICATION_PROTOCOL_MESSAGE action type.

Parameters
[in]gcs_protocolthe GCS protocol to change to

◆ ~Group_action_message()

Group_action_message::~Group_action_message ( )
virtual

Message destructor.

◆ Group_action_message() [5/5]

Group_action_message::Group_action_message ( const uchar buf,
size_t  len 
)

Message constructor for raw data.

Parameters
[in]bufraw data
[in]lenraw length

Member Function Documentation

◆ decode_payload()

void Group_action_message::decode_payload ( const unsigned char *  buffer,
const unsigned char *  end 
)
protectedvirtual

Message decoding method.

Parameters
[in]bufferthe received data
[in]endthe end of the buffer.

Implements Plugin_gcs_message.

◆ encode_payload()

void Group_action_message::encode_payload ( std::vector< unsigned char > *  buffer) const
protectedvirtual

Encodes the message contents for transmission.

Parameters
[out]bufferthe message buffer to be written

Implements Plugin_gcs_message.

◆ get_action_type()

Group_action_message::enum_action_message_type Group_action_message::get_action_type ( const uchar buf)
static

Check what is the action that this message encodes from a buffer.

Parameters
bufthe raw data buffer
Returns
If the message is a primary election action or other

◆ get_gcs_protocol()

const Gcs_protocol_version & Group_action_message::get_gcs_protocol ( )

Returns the GCS protocol this group action wants the group to change to.

Returns
the GCS protocol version

◆ get_group_action_message_phase()

enum_action_message_phase Group_action_message::get_group_action_message_phase ( )
inline

Returns this group action message phase.

◆ get_group_action_message_type()

enum_action_message_type Group_action_message::get_group_action_message_type ( )
inline

Returns this group action message type.

◆ get_primary_to_elect_uuid()

const std::string & Group_action_message::get_primary_to_elect_uuid ( )

Returns this group action primary to be elected uuid.

Returns
the primary to be elected uuid, which can be empty

◆ get_return_value()

int32 Group_action_message::get_return_value ( )
inline
Returns
The return value associated to this message.

◆ set_group_action_message_phase()

void Group_action_message::set_group_action_message_phase ( enum_action_message_phase  phase)
inline

◆ set_return_value()

void Group_action_message::set_return_value ( int  return_value_arg)
inline

Set the return value for this message.

Parameters
return_value_argthe value to set

Member Data Documentation

◆ gcs_protocol

Gcs_protocol_version Group_action_message::gcs_protocol
private

The GCS protocol version to change to.

◆ group_action_phase

enum_action_message_phase Group_action_message::group_action_phase
private

If it is a start, stop or other message.

◆ group_action_type

enum_action_message_type Group_action_message::group_action_type
private

The action type for this message.

◆ primary_election_uuid

std::string Group_action_message::primary_election_uuid
private

The uuid for election, can be empty if not defined.

◆ return_value

int32 Group_action_message::return_value
private

Is there any return value associated to this action.


The documentation for this class was generated from the following files: