/** * Copyright 2014 (c) Anna Schumaker. */ #include #include static Database album_db("album.db", true); static const std::string make_key(const std::string &name, unsigned int year) { return string :: utos(year) + "/" + name; } Album :: Album() : GenericTag(), _year(0) {} Album :: Album(const std::string &name, unsigned int year) : GenericTag(name), _year(year) { } const std::string Album :: primary_key() const { return make_key(GenericTag :: primary_key(), _year); } void Album :: read(File &file) { file >> _year; GenericTag :: read(file); } void Album :: write(File &file) { file << _year << " "; GenericTag :: write(file); } unsigned int Album :: year() { return _year; } void tags :: init_album_db() { album_db.load(); } Album *tags :: get_album(const std::string &name, unsigned int year) { Album *ret = album_db.find(make_key(name, year)); if (ret) return ret; return album_db.insert(Album(name, year)); } Album *tags ::get_album(const unsigned int index) { return album_db.at(index); }