/** * Copyright 2014 (c) Anna Schumaker. */ #include static database library_db("library.db", true); Library :: Library() : _size(0), _enabled(false) { } Library :: Library(const std::string &path) : _size(0), _path(path), _enabled(true) { } const std::string Library :: primary_key() const { return _path; } void Library :: read(file &file) { int enabled; gchar *path; file_readf(&file, "%d\n", &enabled); _enabled = enabled; path = file_readl(&file); _path = path; g_free(path); } void Library :: write(file &file) { file_writef(&file, "%d %s", _enabled, _path.c_str()); } const bool Library :: enabled() { return _enabled; } void Library :: set_enabled(bool enabled) { _enabled = enabled; db_save(&library_db); } const unsigned int Library :: size() { return _size; } void Library :: inc_size() { _size++; } void Library :: dec_size() { _size--; } void tags :: init_library_db() { db_load(&library_db); } Library *tags :: get_library(const std::string &path) { Library *ret = library_db.find(path); if (ret) return ret; return db_insert(&library_db, new Library(path)); } Library *tags :: get_library(const unsigned int index) { return db_at(&library_db, index); } void tags :: remove_library(Library *library) { if (library) db_remove(&library_db, library); } unsigned int tags :: library_size() { return db_actual_size(&library_db); }