diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-10-13 15:29:06 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-10-13 15:29:06 +1100 |
| commit | ceba508593fbb2f897dfa6ba38ec3839e62d85a8 (patch) | |
| tree | f59acafa65e3acababa154c04a4a36870ea57857 /src/database/include | |
| parent | afbf3c31f4d1a605c264f719531f4183ee5a3022 (diff) | |
| download | tangara-fw-ceba508593fbb2f897dfa6ba38ec3839e62d85a8.tar.gz | |
Add modified time to TrackData
Diffstat (limited to 'src/database/include')
| -rw-r--r-- | src/database/include/file_gatherer.hpp | 10 | ||||
| -rw-r--r-- | src/database/include/track.hpp | 19 |
2 files changed, 21 insertions, 8 deletions
diff --git a/src/database/include/file_gatherer.hpp b/src/database/include/file_gatherer.hpp index 133cf81a..378727f7 100644 --- a/src/database/include/file_gatherer.hpp +++ b/src/database/include/file_gatherer.hpp @@ -19,15 +19,17 @@ class IFileGatherer { public: virtual ~IFileGatherer(){}; - virtual auto FindFiles(const std::pmr::string& root, - std::function<void(const std::pmr::string&)> cb) + virtual auto FindFiles( + const std::pmr::string& root, + std::function<void(const std::pmr::string&, const FILINFO&)> cb) -> void = 0; }; class FileGathererImpl : public IFileGatherer { public: - virtual auto FindFiles(const std::pmr::string& root, - std::function<void(const std::pmr::string&)> cb) + virtual auto FindFiles( + const std::pmr::string& root, + std::function<void(const std::pmr::string&, const FILINFO&)> cb) -> void override; }; diff --git a/src/database/include/track.hpp b/src/database/include/track.hpp index 44bfbc54..1067b25e 100644 --- a/src/database/include/track.hpp +++ b/src/database/include/track.hpp @@ -7,6 +7,7 @@ #pragma once #include <stdint.h> +#include <sys/_stdint.h> #include <map> #include <memory> @@ -118,23 +119,30 @@ class TrackData { const std::pmr::string filepath_; const uint64_t tags_hash_; const bool is_tombstoned_; + const std::pair<uint16_t, uint16_t> modified_at_; public: /* Constructor used when adding new tracks to the database. */ - TrackData(TrackId id, const std::pmr::string& path, uint64_t hash) + TrackData(TrackId id, + const std::pmr::string& path, + uint64_t hash, + std::pair<uint16_t, uint16_t> modified_at) : id_(id), filepath_(path, &memory::kSpiRamResource), tags_hash_(hash), - is_tombstoned_(false) {} + is_tombstoned_(false), + modified_at_(modified_at) {} TrackData(TrackId id, const std::pmr::string& path, uint64_t hash, - bool is_tombstoned) + bool is_tombstoned, + std::pair<uint16_t, uint16_t> modified_at) : id_(id), filepath_(path, &memory::kSpiRamResource), tags_hash_(hash), - is_tombstoned_(is_tombstoned) {} + is_tombstoned_(is_tombstoned), + modified_at_(modified_at) {} TrackData(TrackData&& other) = delete; TrackData& operator=(TrackData& other) = delete; @@ -145,6 +153,9 @@ class TrackData { auto filepath() const -> std::pmr::string { return filepath_; } auto tags_hash() const -> uint64_t { return tags_hash_; } auto is_tombstoned() const -> bool { return is_tombstoned_; } + auto modified_at() const -> std::pair<uint16_t, uint16_t> { + return modified_at_; + } auto UpdateHash(uint64_t new_hash) const -> TrackData; |
