diff options
author | unknown <mats@kindahl-laptop.dnsalias.net> | 2007-06-09 08:29:51 +0200 |
---|---|---|
committer | unknown <mats@kindahl-laptop.dnsalias.net> | 2007-06-09 08:29:51 +0200 |
commit | 9fea6f4775c64b12b0cc65375f523c02b7b03457 (patch) | |
tree | bad1b4f3b50a3eda8a4b8d6070537e3f7336e640 /sql/rpl_reporting.h | |
parent | 9eecc8186776d95cf5c89391f13f91c0d3634510 (diff) | |
parent | 79a609aa73c7b6fcc9b1b010e56f22fc8c1e86de (diff) | |
download | mariadb-git-9fea6f4775c64b12b0cc65375f523c02b7b03457.tar.gz |
Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl
into kindahl-laptop.dnsalias.net:/home/bk/b24954-mysql-5.1-new-rpl
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
Auto merged
mysql-test/r/binlog_row_mix_innodb_myisam.result:
Auto merged
mysql-test/t/binlog_row_mix_innodb_myisam.test:
Auto merged
mysql-test/t/rpl_000015.test:
Auto merged
mysql-test/t/rpl_flushlog_loop.test:
Auto merged
mysql-test/t/rpl_ndb_bank.test:
Auto merged
mysql-test/t/rpl_rbr_to_sbr.test:
Auto merged
mysql-test/t/rpl_replicate_do.test:
Auto merged
mysql-test/t/rpl_rotate_logs.test:
Auto merged
mysql-test/t/rpl_row_until.test:
Auto merged
mysql-test/t/rpl_slave_status.test:
Auto merged
mysql-test/t/rpl_ssl1.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/rpl_mi.cc:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/sql_repl.cc:
Auto merged
mysql-test/r/rpl_change_master.result:
Manual merge
mysql-test/r/rpl_000015.result:
Manual merge
mysql-test/r/rpl_deadlock_innodb.result:
Manual merge
mysql-test/r/rpl_empty_master_crash.result:
Manual merge
mysql-test/r/rpl_extraCol_innodb.result:
Manual merge
mysql-test/r/rpl_extraCol_myisam.result:
Manual merge
mysql-test/r/rpl_flushlog_loop.result:
Manual merge
mysql-test/r/rpl_loaddata.result:
Manual merge
mysql-test/r/rpl_log_pos.result:
Manual merge
mysql-test/r/rpl_ndb_basic.result:
Manual merge
mysql-test/r/rpl_ndb_extraCol.result:
Manual merge
mysql-test/r/rpl_ndb_idempotent.result:
Manual merge
mysql-test/r/rpl_ndb_log.result:
Manual merge
mysql-test/r/rpl_rbr_to_sbr.result:
Manual merge
mysql-test/r/rpl_redirect.result:
Manual merge
mysql-test/r/rpl_replicate_do.result:
Manual merge
mysql-test/r/rpl_rotate_logs.result:
Manual merge
mysql-test/r/rpl_row_inexist_tbl.result:
Manual merge
mysql-test/r/rpl_row_log.result:
Manual merge
mysql-test/r/rpl_row_log_innodb.result:
Manual merge
mysql-test/r/rpl_row_max_relay_size.result:
Manual merge
mysql-test/r/rpl_row_reset_slave.result:
Manual merge
mysql-test/r/rpl_row_tabledefs_2myisam.result:
Manual merge
mysql-test/r/rpl_row_tabledefs_3innodb.result:
Manual merge
mysql-test/r/rpl_row_until.result:
Manual merge
mysql-test/r/rpl_server_id1.result:
Manual merge
mysql-test/r/rpl_server_id2.result:
Manual merge
mysql-test/r/rpl_slave_status.result:
Manual merge
mysql-test/r/rpl_ssl1.result:
Manual merge
mysql-test/r/rpl_stm_log.result:
Manual merge
mysql-test/r/rpl_stm_max_relay_size.result:
Manual merge
mysql-test/r/rpl_stm_reset_slave.result:
Manual merge
mysql-test/r/rpl_stm_until.result:
Manual merge
mysql-test/t/rpl_log_pos.test:
Manual merge
mysql-test/t/rpl_ndb_basic.test:
Manual merge
sql/log_event.cc:
Manual merge
sql/rpl_mi.h:
Manual merge
sql/rpl_rli.cc:
Manual merge
sql/rpl_rli.h:
Manual merge
sql/slave.cc:
Manual merge
sql/share/errmsg.txt:
Manual merge
sql/slave.h:
Manual merge
Diffstat (limited to 'sql/rpl_reporting.h')
-rw-r--r-- | sql/rpl_reporting.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/sql/rpl_reporting.h b/sql/rpl_reporting.h new file mode 100644 index 00000000000..e3cd44d16c6 --- /dev/null +++ b/sql/rpl_reporting.h @@ -0,0 +1,78 @@ +#ifndef RPL_REPORTING_H +#define RPL_REPORTING_H + +/** + Mix-in to handle the message logging and reporting for relay log + info and master log info structures. + + By inheriting from this class, the class is imbued with + capabilities to do slave reporting. + */ +class Slave_reporting_capability +{ +public: + /** + Constructor. + + @param thread_name Printable name of the slave thread that is reporting. + */ + Slave_reporting_capability(char const *thread_name) + : m_thread_name(thread_name) + { + } + + /** + Writes a message and, if it's an error message, to Last_Error + (which will be displayed by SHOW SLAVE STATUS). + + @param level The severity level + @param err_code The error code + @param msg The message (usually related to the error + code, but can contain more information), in + printf() format. + */ + void report(loglevel level, int err_code, const char *msg, ...) + ATTRIBUTE_FORMAT(printf, 4, 5); + + /** + Clear errors. They will not show up under <code>SHOW SLAVE + STATUS</code>. + */ + void clear_error() { + last_error.clear(); + } + + /** + Error information structure. + */ + class Error { + friend class Slave_reporting_capability; + public: + Error() + { + clear(); + } + + void clear() + { + number= 0; + message[0]= '\0'; + } + + /** Error code */ + uint32 number; + /** Error message */ + char message[MAX_SLAVE_ERRMSG]; + }; + + /** + Last error produced by the I/O or SQL thread respectively. + */ + Error last_error; + +private: + char const *const m_thread_name; +}; + +#endif // RPL_REPORTING_H + |