14#include <unordered_map>
21 [[
nodiscard]] std::expected<std::u16string, DataError>
29 std::shared_ptr<LanguageCatalog>,
33 std::shared_ptr<LegacyDataArchive> textArchive);
38 std::shared_ptr<LanguageCatalog>,
42 std::shared_ptr<const DataSource>
source);
50 std::optional<SharedLanguageText>,
57 [[
nodiscard]] std::expected<SharedLanguageText, DataError>
63 [[
nodiscard]] std::expected<SharedLanguageText, DataError>
72 std::shared_ptr<LegacyDataArchive> legacyArchive_;
73 std::shared_ptr<const DataSource> source_;
75 std::uint32_t maximumMessageId_{};
76 mutable std::mutex mutex_;
77 mutable std::unordered_map<std::uint32_t, SharedLanguageText> cache_;
113 std::shared_ptr<const DataSource>
source,
116 [[
nodiscard]] std::shared_ptr<const LanguageSnapshot>
119 void clear()
noexcept;
122 mutable std::mutex mutex_;
123 std::shared_ptr<const LanguageSnapshot> active_;
std::vector< std::byte > bytes
std::shared_ptr< const data::HmdTextureImage > source
LanguageId language() const noexcept
std::uint32_t maximumMessageId() const noexcept
static std::expected< std::shared_ptr< LanguageCatalog >, DataError > open(LanguageId language, std::shared_ptr< LegacyDataArchive > textArchive)
std::expected< SharedLanguageText, DataError > cleanMessage(std::uint32_t messageId) const
std::expected< SharedLanguageText, DataError > message(std::uint32_t messageId) const
std::expected< std::optional< SharedLanguageText >, DataError > lookup(std::uint32_t messageId) const
std::shared_ptr< const LanguageSnapshot > snapshot() const noexcept
std::expected< void, DataError > select(const std::filesystem::path &legacyRoot, LanguageId language, ArchiveOpenOptions options={})
std::expected< std::u16string, DataError > decodeLegacyUtf16Le(std::span< const std::byte > bytes)
std::shared_ptr< const std::u16string > SharedLanguageText
std::shared_ptr< LegacyDataArchive > textArchive
std::shared_ptr< LanguageCatalog > catalog
std::shared_ptr< LegacyDataArchive > mediaArchive
std::shared_ptr< LegacyDataArchive > dialogArchive