MySQL 8.0.39
Source Code Documentation
i_progress_watcher.h
Go to the documentation of this file.
1/*
2 Copyright (c) 2015, 2024, Oracle and/or its affiliates.
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License, version 2.0,
6 as published by the Free Software Foundation.
7
8 This program is designed to work with certain software (including
9 but not limited to OpenSSL) that is licensed under separate terms,
10 as designated in a particular file or component or in included license
11 documentation. The authors of MySQL hereby grant you an additional
12 permission to link the program and your derivative works with the
13 separately licensed software that they have either included with
14 the program or referenced in the documentation.
15
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License, version 2.0, for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24*/
25
26#ifndef I_PROGRESS_WATCHER_INCLUDED
27#define I_PROGRESS_WATCHER_INCLUDED
28
32
33namespace Mysql {
34namespace Tools {
35namespace Dump {
36
37class I_progress_watcher : public virtual I_chain_element {
38 public:
39 /**
40 Reports new non-empty chain being created by Chain Maker or new row
41 fetched from table by Table Reader. Called from Crawler or Table Reader.
42 */
43 virtual void new_chain_created(
44 Item_processing_data *new_chain_process_data) = 0;
45 /**
46 Report new object(table, row or any other) was started processing by
47 specified Object Reader, Table Reader, Formatter or Row Formatter. Reported
48 by these types. Is not reported by queues on enqueue but on dequeue.
49 */
51 Item_processing_data *process_data) = 0;
52 /**
53 Report object(table, row or any other) finished being processed. In case of
54 table, this does not necessarily mean that all rows were processed. That
55 does not necessarily mean that object was successfully written by
56 Output Writers.
57 */
59 Item_processing_data *finished_process_data) = 0;
60 /**
61 Reports crawler ended enumerating objects and creating chains for them.
62 */
63 virtual void crawler_completed(I_crawler *crawler) = 0;
64};
65
66} // namespace Dump
67} // namespace Tools
68} // namespace Mysql
69
70#endif
Interface for all objects that can process data in any part of dump process.
Definition: i_chain_element.h:41
Definition: i_crawler.h:36
Definition: i_progress_watcher.h:37
virtual void new_chain_created(Item_processing_data *new_chain_process_data)=0
Reports new non-empty chain being created by Chain Maker or new row fetched from table by Table Reade...
virtual void object_processing_ended(Item_processing_data *finished_process_data)=0
Report object(table, row or any other) finished being processed.
virtual void crawler_completed(I_crawler *crawler)=0
Reports crawler ended enumerating objects and creating chains for them.
virtual void object_processing_started(Item_processing_data *process_data)=0
Report new object(table, row or any other) was started processing by specified Object Reader,...
Data structure for objects that are processed in any chain.
Definition: item_processing_data.h:43
Definition: abstract_connection_program.h:38