Better bench scope + minor cleanup

This commit is contained in:
emeric
2025-05-07 13:56:43 +02:00
parent aa45cea988
commit 79be2ebb16
4 changed files with 20 additions and 20 deletions
+6 -6
View File
@@ -39,10 +39,9 @@ namespace lms::metadata::benchmarks
params.userExtraTags = { "MY_AWESOME_TAG_A", "MY_AWESOME_TAG_B", "MY_AWESOME_MISSING_TAG" };
std::unique_ptr<ITagReader> testTags{ tests::createDefaultPopulatedTestTagReader() };
const TestAudioFileParser parser{ params };
for (auto _ : state)
{
TestAudioFileParser parser{ params };
std::unique_ptr<Track> track{ parser.parseMetaData(*testTags) };
}
}
@@ -55,11 +54,11 @@ namespace lms::metadata::benchmarks
}
};
AudioFileParserParameters params;
const AudioFileParserParameters params;
const TestAudioFileParser parser{ params };
for (auto _ : state)
{
TestAudioFileParser parser{ params };
std::unique_ptr<Track> track{ parser.parseMetaData(testTags) };
}
}
@@ -114,9 +113,9 @@ namespace lms::metadata::benchmarks
"White/Light",
"Yamantaka // Sonic Titan" };
const TestAudioFileParser parser{ params };
for (auto _ : state)
{
TestAudioFileParser parser{ params };
std::unique_ptr<Track> track{ parser.parseMetaData(testTags) };
}
}
@@ -132,9 +131,10 @@ namespace lms::metadata::benchmarks
AudioFileParserParameters params;
params.artistTagDelimiters = { "/", ";" };
const TestAudioFileParser parser{ params };
for (auto _ : state)
{
TestAudioFileParser parser{ params };
std::unique_ptr<Track> track{ parser.parseMetaData(testTags) };
}
}
+6 -6
View File
@@ -362,7 +362,7 @@ namespace lms::metadata
return fileExtensions;
}
std::unique_ptr<Track> AudioFileParser::parseMetaData(const std::filesystem::path& p)
std::unique_ptr<Track> AudioFileParser::parseMetaData(const std::filesystem::path& p) const
{
try
{
@@ -389,7 +389,7 @@ namespace lms::metadata
}
}
void AudioFileParser::parseImages(const std::filesystem::path& p, ImageVisitor visitor)
void AudioFileParser::parseImages(const std::filesystem::path& p, ImageVisitor visitor) const
{
try
{
@@ -416,7 +416,7 @@ namespace lms::metadata
}
}
std::unique_ptr<Track> AudioFileParser::parseMetaData(const ITagReader& tagReader)
std::unique_ptr<Track> AudioFileParser::parseMetaData(const ITagReader& tagReader) const
{
auto track{ std::make_unique<Track>() };
@@ -426,7 +426,7 @@ namespace lms::metadata
return track;
}
void AudioFileParser::processTags(const ITagReader& tagReader, Track& track)
void AudioFileParser::processTags(const ITagReader& tagReader, Track& track) const
{
track.title = getTagValueAs<std::string>(tagReader, TagType::TrackTitle).value_or("");
track.mbid = getTagValueAs<core::UUID>(tagReader, TagType::MusicBrainzTrackID);
@@ -493,7 +493,7 @@ namespace lms::metadata
track.originalYear = track.originalDate.getYear();
}
std::optional<Medium> AudioFileParser::getMedium(const ITagReader& tagReader)
std::optional<Medium> AudioFileParser::getMedium(const ITagReader& tagReader) const
{
std::optional<Medium> medium;
medium.emplace();
@@ -523,7 +523,7 @@ namespace lms::metadata
return medium;
}
std::optional<Release> AudioFileParser::getRelease(const ITagReader& tagReader)
std::optional<Release> AudioFileParser::getRelease(const ITagReader& tagReader) const
{
std::optional<Release> release;
+6 -6
View File
@@ -37,18 +37,18 @@ namespace lms::metadata
AudioFileParser& operator=(const AudioFileParser&) = delete;
protected:
std::unique_ptr<Track> parseMetaData(const std::filesystem::path& p) override;
std::unique_ptr<Track> parseMetaData(const ITagReader& reader);
std::unique_ptr<Track> parseMetaData(const std::filesystem::path& p) const override;
std::unique_ptr<Track> parseMetaData(const ITagReader& reader) const;
static void parseImages(const IImageReader& reader, ImageVisitor visitor);
private:
void parseImages(const std::filesystem::path& p, ImageVisitor visitor) override;
void parseImages(const std::filesystem::path& p, ImageVisitor visitor) const override;
std::span<const std::filesystem::path> getSupportedExtensions() const override;
void processTags(const ITagReader& reader, Track& track);
void processTags(const ITagReader& reader, Track& track) const;
std::optional<Medium> getMedium(const ITagReader& tagReader);
std::optional<Release> getRelease(const ITagReader& tagReader);
std::optional<Medium> getMedium(const ITagReader& tagReader) const;
std::optional<Release> getRelease(const ITagReader& tagReader) const;
const AudioFileParserParameters _params;
};
@@ -33,10 +33,10 @@ namespace lms::metadata
public:
virtual ~IAudioFileParser() = default;
virtual std::unique_ptr<Track> parseMetaData(const std::filesystem::path& p) = 0;
virtual std::unique_ptr<Track> parseMetaData(const std::filesystem::path& p) const = 0;
using ImageVisitor = std::function<void(const Image&)>;
virtual void parseImages(const std::filesystem::path& p, ImageVisitor visitor) = 0;
virtual void parseImages(const std::filesystem::path& p, ImageVisitor visitor) const = 0;
virtual std::span<const std::filesystem::path> getSupportedExtensions() const = 0;
};