#pragma once #include #include #include #include #include "structs.hpp" class Cartographer { public: Cartographer(); static Cartographer& instance(); static Cartographer* create() { return &instance(); } void addAlbum(KotoAlbum* album); void addArtist(KotoArtist* artist); void addTrack(KotoTrack* track); std::optional getAlbum(QUuid uuid); QList getAlbums(); std::optional getArtist(QUuid uuid); QList getArtists(); std::optional getArtist(QString name); std::optional getTrack(QUuid uuid); QList getTracks(); private: QHash i_albums; QHash i_artists; QHash i_artists_by_name; QHash i_tracks; };