#pragma once #include "Containers.h" #include #include #include #include using queue = std::vector; class Database { public: Database( const char* filename ); ~Database(); void fetch( const std::string& query ) const; void fetchAlbum( const std::string& album ) const; void fetchAll( std::vector& entries ) const; void fetchAll( std::map& entries ) const; void fetchHashes( std::set& hashes ); std::set fetchFilePaths(); std::optional getArtistId( const std::string& artistName ); std::optional getAlbumId( const std::string& albumTitle ); std::optional getGenreId( const std::string& genre ); void addTrack( Track t); void addArtist( const std::string& artistName ); void addAlbum( Track t); void addGenre( std::string& genre ); void setActive( bool active ); void updateFilePath( const std::string& filePath ); sqlite3* getDb() { return db_; }; private: sqlite3* db_; sqlite3_stmt* stmnt; };