/* -*- c++ -*- */ /*************************************************************************** * database.cc * * Sat Apr 23 19:09:12 CEST 2022 * Copyright 2022 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of Qookie. * * Qookie is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Qookie is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Qookie; if not, write to the Free Software * 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 {}; }