// SPDX-License-Identifier: GPL-2.0 // A structure that contains all the data we store in a divelog files #ifndef DIVELOG_H #define DIVELOG_H #include <memory> struct dive_table; struct trip_table; class dive_site_table; struct device_table; struct filter_preset_table; struct divelog { std::unique_ptr<dive_table> dives; std::unique_ptr<trip_table> trips; std::unique_ptr<dive_site_table> sites; std::unique_ptr<device_table> devices; std::unique_ptr<filter_preset_table> filter_presets; bool autogroup; divelog(); ~divelog(); divelog(divelog &&); // move constructor (argument is consumed). divelog &operator=(divelog &&); // move assignment (argument is consumed). void delete_single_dive(int idx); void clear(); }; extern struct divelog divelog; #endif