summaryrefslogtreecommitdiffstats
path: root/extra/mariabackup/aria_backup_client.h
blob: 7a581b5862e4d1c2be77b7c9301418637c7cea1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#pragma once
#include "my_global.h"
#include "datasink.h"
#include "backup_mysql.h"
#include "thread_pool.h"
#include "xtrabackup.h"

namespace aria {

bool prepare(const char *target_dir);

class BackupImpl;

class Backup {
	public:
		Backup(const char *datadir_path,
		       const char *aria_log_path,
		       ds_ctxt_t *datasink,
			std::vector<MYSQL *> &con_pool, ThreadPool &thread_pool);
		~Backup();
		Backup (Backup &&other) = delete;
		Backup & operator= (Backup &&other) = delete;
		Backup(const Backup &) = delete;
		Backup & operator= (const Backup &) = delete;
		bool init();
		bool start(bool no_lock);
		bool wait_for_finish();
		bool copy_offline_tables(
			const std::unordered_set<table_key_t> *exclude_tables, bool no_lock,
			bool copy_stats);
		bool finalize();
		bool copy_log_tail();
		void set_post_copy_table_hook(const post_copy_table_hook_t &hook);
	private:
		BackupImpl *m_backup_impl;
};

} // namespace aria