diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2022-04-30 21:12:44 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2022-05-26 18:41:21 +0200 |
commit | 0dea7c3dad15f397600458ae9a81af29e95752fa (patch) | |
tree | b6b17f93f907e139274b967c02ac356b56422b20 /src/database.cc | |
parent | 0ae26aded59f09b969592c2e600dba176954c619 (diff) |
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.
Diffstat (limited to 'src/database.cc')
-rw-r--r-- | src/database.cc | 56 |
1 files changed, 56 insertions, 0 deletions
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 <cassert> + +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<RecipeItem> 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 {}; +} |