From 0dea7c3dad15f397600458ae9a81af29e95752fa Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 30 Apr 2022 21:12:44 +0200 Subject: Make 'super' database, encapsulating both the krecipes one and the gourmet one. Add small vignettes to the recipe list images to indicate from which soucre each item is coming from. --- src/database.cc | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'src/database.cc') diff --git a/src/database.cc b/src/database.cc index 207a114..e55cd2a 100644 --- a/src/database.cc +++ b/src/database.cc @@ -25,3 +25,59 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include "database.h" + +#include "database_gourmet.h" +#include "database_krecipes.h" + +#include + +DatabaseGourmet db1("/mnt/atuin/docs/tine/Fritid/Mad/recipes.db"); +DatabaseKrecipes db2("/mnt/atuin/docs/tine/Fritid/Mad/krecipes.krecdb"); + +Database::Database() +{ +} + +Database::~Database() +{ +} + +int Database::id() const +{ + return {}; +} + +std::deque Database::getRecipes() +{ + auto res1 = db1.getRecipes(); + auto res2 = db2.getRecipes(); + + for(auto& res : res1) + { + res.id |= db1.id(); + } + + for(auto& res : res2) + { + res.id |= db2.id(); + res1.push_back(res); + } + + return res1; +} + +Recipe Database::getRecipe(int id) +{ + if((id & db1.id()) == db1.id()) + { + return db1.getRecipe(id & (~db1.id())); + } + + if((id & db2.id()) == db2.id()) + { + return db2.getRecipe(id & (~db2.id())); + } + + assert(false); // we looked up an id, but it wasn't in any of the databases? this shouldn't happen... + return {}; +} -- cgit v1.2.3