MySQL  8.0.19
Source Code Documentation
Transaction_message Class Reference

#include <transaction_message.h>

Inheritance diagram for Transaction_message:
Transaction_message_interface Plugin_gcs_message Basic_ostream

Public Types

enum  enum_payload_item_type { PIT_UNKNOWN = 0, PIT_TRANSACTION_DATA = 1, PIT_MAX = 2 }
 
- 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

 Transaction_message ()
 Default constructor. More...
 
virtual ~Transaction_message ()
 
bool write (const unsigned char *buffer, my_off_t length)
 Overrides Basic_ostream::write(). More...
 
my_off_t length ()
 Length of data in data vector. More...
 
- Public Member Functions inherited from Transaction_message_interface
 Transaction_message_interface (enum_cargo_type cargo_type)
 
virtual ~Transaction_message_interface ()
 
- 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...
 
- Public Member Functions inherited from Basic_ostream
virtual ~Basic_ostream ()
 

Protected Member Functions

void encode_payload (std::vector< unsigned char > *buffer) const
 Encodes the contents of this instance payload into the buffer. More...
 
void decode_payload (const unsigned char *buffer, const unsigned char *)
 Decodes the contents of the buffer and sets the payload field values according to the values decoded. 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

std::vector< ucharm_data
 

Additional Inherited Members

- 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...
 
- 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_payload_item_type

Enumerator
PIT_UNKNOWN 
PIT_TRANSACTION_DATA 
PIT_MAX 

Constructor & Destructor Documentation

◆ Transaction_message()

Transaction_message::Transaction_message ( )

Default constructor.

◆ ~Transaction_message()

Transaction_message::~Transaction_message ( )
virtual

Member Function Documentation

◆ decode_payload()

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

Decodes the contents of the buffer and sets the payload field values according to the values decoded.

Parameters
[in]bufferthe buffer to decode from.
[in]endthe end of the buffer.

Implements Plugin_gcs_message.

◆ encode_payload()

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

Encodes the contents of this instance payload into the buffer.

Parameters
[out]bufferthe buffer to encode to.

Implements Plugin_gcs_message.

◆ length()

my_off_t Transaction_message::length ( )
virtual

Length of data in data vector.

Returns
data length

Implements Transaction_message_interface.

◆ write()

bool Transaction_message::write ( const unsigned char *  buffer,
my_off_t  length 
)
virtual

Overrides Basic_ostream::write().

Transaction_message is a Basic_ostream. Callers can write data into Transaction_message's data buffer though this method.

Parameters
[in]bufferwhere the data will be read
[in]lengththe length of the data to write
Returns
returns false if succeeds, otherwise true is returned.

Implements Basic_ostream.

Member Data Documentation

◆ m_data

std::vector<uchar> Transaction_message::m_data
private

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