annotate include/core/anime_db.h @ 198:bc1ae1810855

dep/animia: switch from using classes to global functions the old idea was ok, but sort of hackish; this method doesn't use classes at all, and this way (especially important!) we can do wayland stuff AND x11 at the same time, which wasn't really possible without stupid workarounds in the other method
author Paper <mrpapersonic@gmail.com>
date Sun, 24 Dec 2023 02:59:42 -0500
parents 122fad646f81
children 862d0d8619f6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
1 #ifndef __core__anime_db_h
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
2 #define __core__anime_db_h
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 83
diff changeset
3
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
4 #include "core/anime.h"
175
9b10175be389 dep/json: update to v3.11.3
Paper <mrpapersonic@gmail.com>
parents: 174
diff changeset
5 #include "json/json_fwd.hpp"
76
3364fadc8a36 *: format source code
Paper <mrpapersonic@gmail.com>
parents: 64
diff changeset
6 #include <string>
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
7 #include <unordered_map>
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
8
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
9 namespace Anime {
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
11 class Database {
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
12 public:
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
13 std::unordered_map<int, Anime> items;
177
122fad646f81 anime/db: upgrade to c++17 style, make things easier to read
Paper <mrpapersonic@gmail.com>
parents: 175
diff changeset
14 size_t GetTotalAnimeAmount();
122fad646f81 anime/db: upgrade to c++17 style, make things easier to read
Paper <mrpapersonic@gmail.com>
parents: 175
diff changeset
15 size_t GetTotalEpisodeAmount();
122fad646f81 anime/db: upgrade to c++17 style, make things easier to read
Paper <mrpapersonic@gmail.com>
parents: 175
diff changeset
16 size_t GetTotalWatchedAmount();
122fad646f81 anime/db: upgrade to c++17 style, make things easier to read
Paper <mrpapersonic@gmail.com>
parents: 175
diff changeset
17 size_t GetTotalPlannedAmount();
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
18 double GetAverageScore();
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
19 double GetScoreDeviation();
177
122fad646f81 anime/db: upgrade to c++17 style, make things easier to read
Paper <mrpapersonic@gmail.com>
parents: 175
diff changeset
20 size_t GetListsAnimeAmount(ListStatus status);
83
d02fdf1d6708 *: huuuge update
Paper <mrpapersonic@gmail.com>
parents: 76
diff changeset
21 int GetAnimeFromTitle(const std::string& title);
173
de0a8d2f28b3 WILL NOT COMPILE: sample export ability for anime db
Paper <mrpapersonic@gmail.com>
parents: 85
diff changeset
22
de0a8d2f28b3 WILL NOT COMPILE: sample export ability for anime db
Paper <mrpapersonic@gmail.com>
parents: 85
diff changeset
23 bool GetDatabaseAsJSON(nlohmann::json& json);
174
f88eda79c60a anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents: 173
diff changeset
24 bool SaveDatabaseToDisk();
f88eda79c60a anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents: 173
diff changeset
25
f88eda79c60a anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents: 173
diff changeset
26 bool ParseDatabaseJSON(const nlohmann::json& json);
177
122fad646f81 anime/db: upgrade to c++17 style, make things easier to read
Paper <mrpapersonic@gmail.com>
parents: 175
diff changeset
27 bool LoadDatabaseFromDisk();
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
28 };
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
29
11
fc1bf97c528b *: use C++11 standard
Paper <mrpapersonic@gmail.com>
parents: 10
diff changeset
30 extern Database db;
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
31
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
32 } // namespace Anime
85
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 83
diff changeset
33
c69230dc2b5d *: cleanup includes
Paper <mrpapersonic@gmail.com>
parents: 83
diff changeset
34
10
Paper <mrpapersonic@gmail.com>
parents: 9
diff changeset
35 #endif // __core__anime_db_h