summaryrefslogtreecommitdiff
path: root/lib/row.h
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-05-21 08:43:43 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2021-05-21 08:43:43 +0100
commitbf55ecaeb6849eab89fdb9bc5da51ff32dd1ea33 (patch)
tree3e5d8bd554aff8f455bf55c38d0cb63505beb4b9 /lib/row.h
parentDefault intialize structs (diff)
downloadmygrate-bf55ecaeb6849eab89fdb9bc5da51ff32dd1ea33.tar.bz2
mygrate-bf55ecaeb6849eab89fdb9bc5da51ff32dd1ea33.tar.xz
mygrate-bf55ecaeb6849eab89fdb9bc5da51ff32dd1ea33.zip
Unpack row data into a vector or vector pair
Diffstat (limited to 'lib/row.h')
-rw-r--r--lib/row.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/row.h b/lib/row.h
index ac2c135..4191644 100644
--- a/lib/row.h
+++ b/lib/row.h
@@ -6,15 +6,25 @@
#include <functional>
namespace MyGrate {
- class Row {
+ class Row : public std::vector<MySQL::FieldValue> {
public:
Row(const st_mariadb_rpl_rows_event &, const st_mariadb_rpl_table_map_event &);
- void forEachField(const std::function<void(MySQL::FieldValue)> & callback);
+ private:
+ friend class RowPair;
+ Row(const st_mariadb_rpl_rows_event &, const st_mariadb_rpl_table_map_event &, MyGrate::RawDataReader && md,
+ MyGrate::RawDataReader && data);
+ Row(const st_mariadb_rpl_rows_event &, const st_mariadb_rpl_table_map_event &, MyGrate::RawDataReader & md,
+ MyGrate::RawDataReader & data);
+ };
+
+ class RowPair : public std::pair<Row, Row> {
+ public:
+ RowPair(const st_mariadb_rpl_rows_event &, const st_mariadb_rpl_table_map_event &);
private:
- const st_mariadb_rpl_rows_event & row;
- const st_mariadb_rpl_table_map_event & tm;
+ RowPair(const st_mariadb_rpl_rows_event &, const st_mariadb_rpl_table_map_event &,
+ MyGrate::RawDataReader && md1, MyGrate::RawDataReader && md2, MyGrate::RawDataReader && data);
};
}