#ifndef YACREADERHTTPSESSION_H #define YACREADERHTTPSESSION_H #include #include "comic.h" class YACReaderHttpSession : public QObject { Q_OBJECT public: explicit YACReaderHttpSession(QObject *parent = 0); ~YACReaderHttpSession(); void setComicsOnDevice(const QSet & set); void setComicOnDevice(const QString & hash); void setDownloadedComic(const QString & hash); bool isComicOnDevice(const QString & hash); bool isComicDownloaded(const QString & hash); QSet getComicsOnDevice(); QSet getDownloadedComics(); void clearComics(); //current comic (import) qulonglong getCurrentComicId(); Comic * getCurrentComic(); void dismissCurrentComic(); void setCurrentComic(qulonglong id, Comic * comic); //current comic (read) qulonglong getCurrentRemoteComicId(); Comic * getCurrentRemoteComic(); void dismissCurrentRemoteComic(); void setCurrentRemoteComic(qulonglong id, Comic * comic); //device identification QString getDeviceType(); QString getDisplayType(); void setDeviceType(const QString & device); void setDisplayType(const QString & display); void clearNavigationPath(); QPair popNavigationItem(); QPair topNavigationItem(); void pushNavigationItem(const QPair & item); void updateTopItem(const QPair & item); //TODO replace QPair by a custom class for storing folderId, page and folderName(save some DB accesses) QStack > getNavigationPath(); signals: public slots: private: QSet comicsOnDevice; QSet downloadedComics; QString device; QString display; qulonglong comicId; qulonglong remoteComicId; Comic * comic; Comic * remoteComic; QStack > navigationPath; /* folder_id, page_number */ }; #endif // YACREADERHTTPSESSION_H