summaryrefslogtreecommitdiff
path: root/src/database/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/include')
-rw-r--r--src/database/include/file_gatherer.hpp10
-rw-r--r--src/database/include/track.hpp19
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;