diff options
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 {}; +} |