MySQL 9.0.0
Source Code Documentation
transaction_message_interface.h
Go to the documentation of this file.
1/* Copyright (c) 2018, 2024, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is designed to work with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have either included with
13 the program or referenced in the documentation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License, version 2.0, for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef TRANSACTION_MESSAGE_INTERFACE_INCLUDED
25#define TRANSACTION_MESSAGE_INTERFACE_INCLUDED
26
28#include <vector>
29
30#include "my_inttypes.h"
32
34
35/*
36 @class Transaction_message_interface
37
38 Parent class of the transaction messages-
39 */
41 public Basic_ostream {
42 public:
44 : Plugin_gcs_message(cargo_type) {}
45 ~Transaction_message_interface() override = default;
46
47 /**
48 Length of the message.
49
50 @return message length
51 */
52 virtual uint64_t length() = 0;
53
54 /**
55 Get the Gcs_message_data object, which contains the serialized
56 transaction data.
57 The internal Gcs_message_data is nullified, to avoid further usage
58 of this Transaction object and the caller receives a pointer to the
59 previously internal Gcs_message_data, which whom it is now responsible.
60
61 @return the serialized transaction data in a Gcs_message_data object
62 */
64};
65
66#endif /* TRANSACTION_MESSAGE_INTERFACE_INCLUDED */
The abstract class for basic output streams which provides write operation.
Definition: basic_ostream.h:37
This class serves as data container for information flowing in the GCS ecosystem.
Definition: gcs_message.h:48
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:64
enum_cargo_type
The different cargo type codes.
Definition: gcs_plugin_messages.h:116
Definition: transaction_message_interface.h:41
virtual Gcs_message_data * get_message_data_and_reset()=0
Get the Gcs_message_data object, which contains the serialized transaction data.
Transaction_message_interface(enum_cargo_type cargo_type)
Definition: transaction_message_interface.h:43
virtual uint64_t length()=0
Length of the message.
~Transaction_message_interface() override=default
Some integer typedefs for easier portability.