diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-05-21 08:43:43 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-05-21 08:43:43 +0100 |
commit | bf55ecaeb6849eab89fdb9bc5da51ff32dd1ea33 (patch) | |
tree | 3e5d8bd554aff8f455bf55c38d0cb63505beb4b9 /lib/row.h | |
parent | Default intialize structs (diff) | |
download | mygrate-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.h | 18 |
1 files changed, 14 insertions, 4 deletions
@@ -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); }; } |