![]() |
MySQL
8.0.23
Source Code Documentation
|
#include <gcs_message.h>
Public Member Functions | |
Gcs_message (const Gcs_member_identifier &origin, const Gcs_group_identifier &destination, Gcs_message_data *message_data) | |
Gcs_message 1st constructor. More... | |
Gcs_message (const Gcs_member_identifier &origin, Gcs_message_data *message_data) | |
Gcs_message 2nd constructor. More... | |
virtual | ~Gcs_message () |
const Gcs_member_identifier & | get_origin () const |
const Gcs_group_identifier * | get_destination () const |
Gcs_message_data & | get_message_data () const |
Private Member Functions | |
void | init (const Gcs_member_identifier *origin, const Gcs_group_identifier *destination, Gcs_message_data *message_data) |
Gcs_message (Gcs_message const &) | |
Gcs_message & | operator= (Gcs_message const &) |
Private Attributes | |
Gcs_member_identifier * | m_origin |
Gcs_group_identifier * | m_destination |
Gcs_message_data * | m_data |
Class that represents the data that is exchanged within a group. It is sent by a member having the group as destination. It shall be received by all members that pertain to the group in that moment.
It is built using two major blocks: the header and the payload of the message. A user of Gcs_message can freely add data to the header and to the payload.
Each binding implementation might use these two fields at its own discretion but that data should be removed from the header/payload before its delivery to the client layer.
When the message is built, none of the data is passed unto it. One has to use the append_* methods in order to append data. Calling encode() at the end will provide a ready-to-send message.
On the receiver side, one shall use decode() in order to have the header and the payload restored in the original message fields.
A typical use case of sending a message is:
A typical use case of receiving a message is:
|
explicit |
Gcs_message 1st constructor.
Gcs_message implementation.
This is used to build full messages.
Note that the Gcs_message will acquire ownership of the data, i.e. Gcs_message_data, and will be responsible for deleting it.
[in] | origin | The group member that sent the message |
[in] | destination | The group in which this message belongs |
[in] | message_data | External message data object. |
|
explicit |
Gcs_message 2nd constructor.
This is used to send messages but with an external Gcs_message_data object.
Note that the Gcs_message will acquire ownership of the data, i.e. Gcs_message_data, and will be responsible for deleting it.
[in] | origin | The group member that sent the message |
[in] | message_data | External message data object. |
|
virtual |
|
private |
const Gcs_group_identifier * Gcs_message::get_destination | ( | ) | const |
Gcs_message_data & Gcs_message::get_message_data | ( | ) | const |
const Gcs_member_identifier & Gcs_message::get_origin | ( | ) | const |
|
private |
|
private |
|
private |
|
private |
|
private |