MySQL 26.7.0
Source Code Documentation
cached_event.h
Go to the documentation of this file.
1// Copyright (c) 2026, 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 MYSQL_CSA_RELAY_LOG_CACHED_EVENT_H
25#define MYSQL_CSA_RELAY_LOG_CACHED_EVENT_H
26
27#include <memory>
29#include "sql/log_event.h" // Log_event
30
31namespace mysql::csa {
32
33/// @brief Implementation of the IReader_event which contains a cached, decoded
34/// event
36 public:
37 /// Is constructed using Log_event
38 /// @param ev Smart pointer to decoded Log_event
39 Cached_event(const std::shared_ptr<Log_event> &ev);
40
41 /// Destructor
42 virtual ~Cached_event() override = default;
43
44 /// @brief Decode function, which obtains Log event smart pointer
45 /// @return Log event smart pointer
46 std::shared_ptr<Log_event> decode() override;
47
48 /// @brief Resets event state
49 /// @param fde Fde used to create new event object
50 void reset(const Format_description_log_event *fde) override;
51
52 private:
53 /// Internal data - cached event
54 std::shared_ptr<Log_event> m_data;
55 char *orig_buf{nullptr};
56};
57
58} // namespace mysql::csa
59
60#endif // MYSQL_CSA_RELAY_LOG_CACHED_EVENT_H
For binlog version 4.
Definition: log_event.h:1558
Implementation of the IReader_event which contains a cached, decoded event.
Definition: cached_event.h:35
char * orig_buf
Definition: cached_event.h:55
std::shared_ptr< Log_event > m_data
Internal data - cached event.
Definition: cached_event.h:54
Cached_event(const std::shared_ptr< Log_event > &ev)
Is constructed using Log_event.
Definition: cached_event.cpp:30
virtual ~Cached_event() override=default
Destructor.
void reset(const Format_description_log_event *fde) override
Resets event state.
Definition: cached_event.cpp:39
std::shared_ptr< Log_event > decode() override
Decode function, which obtains Log event smart pointer.
Definition: cached_event.cpp:37
Interface for abstract event data returned by the reader, which can be decoded into a log event using...
Definition: ireader_event.h:38
Binary log event definitions.
Definition: channel.cpp:28