1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:27:45 +00:00

LibCore: Move Stream-based file into the Core namespace

This commit is contained in:
Tim Schumacher 2023-02-09 03:02:46 +01:00 committed by Linus Groh
parent a96339b72b
commit 606a3982f3
218 changed files with 748 additions and 643 deletions

View file

@ -50,7 +50,7 @@ static void set_image_path_for_emoji(StringView emoji_resource_path, Emoji& emoj
emoji.image_path = move(path);
}
static ErrorOr<void> parse_emoji_test_data(Core::Stream::BufferedFile& file, EmojiData& emoji_data)
static ErrorOr<void> parse_emoji_test_data(Core::BufferedFile& file, EmojiData& emoji_data)
{
static constexpr auto group_header = "# group: "sv;
static constexpr auto subgroup_header = "# subgroup: "sv;
@ -114,7 +114,7 @@ static ErrorOr<void> parse_emoji_test_data(Core::Stream::BufferedFile& file, Emo
return {};
}
static ErrorOr<void> parse_emoji_serenity_data(Core::Stream::BufferedFile& file, EmojiData& emoji_data)
static ErrorOr<void> parse_emoji_serenity_data(Core::BufferedFile& file, EmojiData& emoji_data)
{
static constexpr auto code_point_header = "U+"sv;
@ -164,7 +164,7 @@ static ErrorOr<void> parse_emoji_serenity_data(Core::Stream::BufferedFile& file,
return {};
}
static ErrorOr<void> generate_emoji_data_header(Core::Stream::BufferedFile& file, EmojiData const&)
static ErrorOr<void> generate_emoji_data_header(Core::BufferedFile& file, EmojiData const&)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -173,7 +173,7 @@ static ErrorOr<void> generate_emoji_data_header(Core::Stream::BufferedFile& file
return {};
}
static ErrorOr<void> generate_emoji_data_implementation(Core::Stream::BufferedFile& file, EmojiData const& emoji_data)
static ErrorOr<void> generate_emoji_data_implementation(Core::BufferedFile& file, EmojiData const& emoji_data)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -276,7 +276,7 @@ Optional<Emoji> find_emoji_for_code_points(ReadonlySpan<u32> code_points)
return {};
}
static ErrorOr<void> generate_emoji_installation(Core::Stream::BufferedFile& file, EmojiData const& emoji_data)
static ErrorOr<void> generate_emoji_installation(Core::BufferedFile& file, EmojiData const& emoji_data)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -339,14 +339,14 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
args_parser.add_option(emoji_resource_path, "Path to the /res/emoji directory", "emoji-resource-path", 'r', "emoji-resource-path");
args_parser.parse(arguments);
auto emoji_test_file = TRY(open_file(emoji_test_path, Core::Stream::OpenMode::Read));
auto emoji_test_file = TRY(open_file(emoji_test_path, Core::File::OpenMode::Read));
VERIFY(!emoji_resource_path.is_empty() && Core::DeprecatedFile::exists(emoji_resource_path));
EmojiData emoji_data {};
TRY(parse_emoji_test_data(*emoji_test_file, emoji_data));
if (!emoji_serenity_path.is_empty()) {
auto emoji_serenity_file = TRY(open_file(emoji_serenity_path, Core::Stream::OpenMode::Read));
auto emoji_serenity_file = TRY(open_file(emoji_serenity_path, Core::File::OpenMode::Read));
TRY(parse_emoji_serenity_data(*emoji_serenity_file, emoji_data));
}
@ -357,11 +357,11 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
}
if (!generated_header_path.is_empty()) {
auto generated_header_file = TRY(open_file(generated_header_path, Core::Stream::OpenMode::Write));
auto generated_header_file = TRY(open_file(generated_header_path, Core::File::OpenMode::Write));
TRY(generate_emoji_data_header(*generated_header_file, emoji_data));
}
if (!generated_implementation_path.is_empty()) {
auto generated_implementation_file = TRY(open_file(generated_implementation_path, Core::Stream::OpenMode::Write));
auto generated_implementation_file = TRY(open_file(generated_implementation_path, Core::File::OpenMode::Write));
TRY(generate_emoji_data_implementation(*generated_implementation_file, emoji_data));
}
@ -371,7 +371,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
for (auto& emoji : emoji_data.emojis)
set_image_path_for_emoji(emoji_resource_path, emoji);
auto generated_installation_file = TRY(open_file(generated_installation_path, Core::Stream::OpenMode::Write));
auto generated_installation_file = TRY(open_file(generated_installation_path, Core::File::OpenMode::Write));
TRY(generate_emoji_installation(*generated_installation_file, emoji_data));
}

View file

@ -219,7 +219,7 @@ static CodePointRange parse_code_point_range(StringView list)
return code_point_range;
}
static ErrorOr<void> parse_special_casing(Core::Stream::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_special_casing(Core::BufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
@ -290,7 +290,7 @@ static ErrorOr<void> parse_special_casing(Core::Stream::BufferedFile& file, Unic
return {};
}
static ErrorOr<void> parse_case_folding(Core::Stream::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_case_folding(Core::BufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
@ -338,7 +338,7 @@ static ErrorOr<void> parse_case_folding(Core::Stream::BufferedFile& file, Unicod
return {};
}
static ErrorOr<void> parse_prop_list(Core::Stream::BufferedFile& file, PropList& prop_list, bool multi_value_property = false, bool sanitize_property = false)
static ErrorOr<void> parse_prop_list(Core::BufferedFile& file, PropList& prop_list, bool multi_value_property = false, bool sanitize_property = false)
{
Array<u8, 1024> buffer;
@ -371,7 +371,7 @@ static ErrorOr<void> parse_prop_list(Core::Stream::BufferedFile& file, PropList&
return {};
}
static ErrorOr<void> parse_alias_list(Core::Stream::BufferedFile& file, PropList const& prop_list, Vector<Alias>& prop_aliases)
static ErrorOr<void> parse_alias_list(Core::BufferedFile& file, PropList const& prop_list, Vector<Alias>& prop_aliases)
{
DeprecatedString current_property;
Array<u8, 1024> buffer;
@ -417,7 +417,7 @@ static ErrorOr<void> parse_alias_list(Core::Stream::BufferedFile& file, PropList
return {};
}
static ErrorOr<void> parse_name_aliases(Core::Stream::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_name_aliases(Core::BufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
@ -448,7 +448,7 @@ static ErrorOr<void> parse_name_aliases(Core::Stream::BufferedFile& file, Unicod
return {};
}
static ErrorOr<void> parse_value_alias_list(Core::Stream::BufferedFile& file, StringView desired_category, Vector<DeprecatedString> const& value_list, Vector<Alias>& prop_aliases, bool primary_value_is_first = true, bool sanitize_alias = false)
static ErrorOr<void> parse_value_alias_list(Core::BufferedFile& file, StringView desired_category, Vector<DeprecatedString> const& value_list, Vector<Alias>& prop_aliases, bool primary_value_is_first = true, bool sanitize_alias = false)
{
TRY(file.seek(0, SeekMode::SetPosition));
Array<u8, 1024> buffer;
@ -494,7 +494,7 @@ static ErrorOr<void> parse_value_alias_list(Core::Stream::BufferedFile& file, St
return {};
}
static ErrorOr<void> parse_normalization_props(Core::Stream::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_normalization_props(Core::BufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
@ -628,7 +628,7 @@ static Optional<CodePointDecomposition> parse_decomposition_mapping(StringView s
return mapping;
}
static ErrorOr<void> parse_block_display_names(Core::Stream::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_block_display_names(Core::BufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
while (TRY(file.can_read_line())) {
@ -651,7 +651,7 @@ static ErrorOr<void> parse_block_display_names(Core::Stream::BufferedFile& file,
return {};
}
static ErrorOr<void> parse_unicode_data(Core::Stream::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_unicode_data(Core::BufferedFile& file, UnicodeData& unicode_data)
{
Optional<u32> code_point_range_start;
@ -756,7 +756,7 @@ static ErrorOr<void> parse_unicode_data(Core::Stream::BufferedFile& file, Unicod
return {};
}
static ErrorOr<void> generate_unicode_data_header(Core::Stream::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> generate_unicode_data_header(Core::BufferedFile& file, UnicodeData& unicode_data)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -871,7 +871,7 @@ ReadonlySpan<CaseFolding const*> case_folding_mapping(u32 code_point);
return {};
}
static ErrorOr<void> generate_unicode_data_implementation(Core::Stream::BufferedFile& file, UnicodeData const& unicode_data)
static ErrorOr<void> generate_unicode_data_implementation(Core::BufferedFile& file, UnicodeData const& unicode_data)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -1530,26 +1530,26 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
args_parser.add_option(sentence_break_path, "Path to SentenceBreakProperty.txt file", "sentence-break-path", 'i', "sentence-break-path");
args_parser.parse(arguments);
auto generated_header_file = TRY(open_file(generated_header_path, Core::Stream::OpenMode::Write));
auto generated_implementation_file = TRY(open_file(generated_implementation_path, Core::Stream::OpenMode::Write));
auto unicode_data_file = TRY(open_file(unicode_data_path, Core::Stream::OpenMode::Read));
auto derived_general_category_file = TRY(open_file(derived_general_category_path, Core::Stream::OpenMode::Read));
auto special_casing_file = TRY(open_file(special_casing_path, Core::Stream::OpenMode::Read));
auto case_folding_file = TRY(open_file(case_folding_path, Core::Stream::OpenMode::Read));
auto prop_list_file = TRY(open_file(prop_list_path, Core::Stream::OpenMode::Read));
auto derived_core_prop_file = TRY(open_file(derived_core_prop_path, Core::Stream::OpenMode::Read));
auto derived_binary_prop_file = TRY(open_file(derived_binary_prop_path, Core::Stream::OpenMode::Read));
auto prop_alias_file = TRY(open_file(prop_alias_path, Core::Stream::OpenMode::Read));
auto prop_value_alias_file = TRY(open_file(prop_value_alias_path, Core::Stream::OpenMode::Read));
auto name_alias_file = TRY(open_file(name_alias_path, Core::Stream::OpenMode::Read));
auto scripts_file = TRY(open_file(scripts_path, Core::Stream::OpenMode::Read));
auto script_extensions_file = TRY(open_file(script_extensions_path, Core::Stream::OpenMode::Read));
auto blocks_file = TRY(open_file(blocks_path, Core::Stream::OpenMode::Read));
auto emoji_data_file = TRY(open_file(emoji_data_path, Core::Stream::OpenMode::Read));
auto normalization_file = TRY(open_file(normalization_path, Core::Stream::OpenMode::Read));
auto grapheme_break_file = TRY(open_file(grapheme_break_path, Core::Stream::OpenMode::Read));
auto word_break_file = TRY(open_file(word_break_path, Core::Stream::OpenMode::Read));
auto sentence_break_file = TRY(open_file(sentence_break_path, Core::Stream::OpenMode::Read));
auto generated_header_file = TRY(open_file(generated_header_path, Core::File::OpenMode::Write));
auto generated_implementation_file = TRY(open_file(generated_implementation_path, Core::File::OpenMode::Write));
auto unicode_data_file = TRY(open_file(unicode_data_path, Core::File::OpenMode::Read));
auto derived_general_category_file = TRY(open_file(derived_general_category_path, Core::File::OpenMode::Read));
auto special_casing_file = TRY(open_file(special_casing_path, Core::File::OpenMode::Read));
auto case_folding_file = TRY(open_file(case_folding_path, Core::File::OpenMode::Read));
auto prop_list_file = TRY(open_file(prop_list_path, Core::File::OpenMode::Read));
auto derived_core_prop_file = TRY(open_file(derived_core_prop_path, Core::File::OpenMode::Read));
auto derived_binary_prop_file = TRY(open_file(derived_binary_prop_path, Core::File::OpenMode::Read));
auto prop_alias_file = TRY(open_file(prop_alias_path, Core::File::OpenMode::Read));
auto prop_value_alias_file = TRY(open_file(prop_value_alias_path, Core::File::OpenMode::Read));
auto name_alias_file = TRY(open_file(name_alias_path, Core::File::OpenMode::Read));
auto scripts_file = TRY(open_file(scripts_path, Core::File::OpenMode::Read));
auto script_extensions_file = TRY(open_file(script_extensions_path, Core::File::OpenMode::Read));
auto blocks_file = TRY(open_file(blocks_path, Core::File::OpenMode::Read));
auto emoji_data_file = TRY(open_file(emoji_data_path, Core::File::OpenMode::Read));
auto normalization_file = TRY(open_file(normalization_path, Core::File::OpenMode::Read));
auto grapheme_break_file = TRY(open_file(grapheme_break_path, Core::File::OpenMode::Read));
auto word_break_file = TRY(open_file(word_break_path, Core::File::OpenMode::Read));
auto sentence_break_file = TRY(open_file(sentence_break_path, Core::File::OpenMode::Read));
UnicodeData unicode_data {};
TRY(parse_special_casing(*special_casing_file, unicode_data));

View file

@ -20,6 +20,7 @@
#include <AK/Traits.h>
#include <AK/Vector.h>
#include <LibCore/DirIterator.h>
#include <LibCore/File.h>
#include <LibCore/Stream.h>
#include <LibLocale/Locale.h>
@ -323,18 +324,18 @@ struct CanonicalLanguageID {
Vector<size_t> variants {};
};
inline ErrorOr<NonnullOwnPtr<Core::Stream::BufferedFile>> open_file(StringView path, Core::Stream::OpenMode mode)
inline ErrorOr<NonnullOwnPtr<Core::BufferedFile>> open_file(StringView path, Core::File::OpenMode mode)
{
if (path.is_empty())
return Error::from_string_literal("Provided path is empty, please provide all command line options");
auto file = TRY(Core::Stream::File::open(path, mode));
return Core::Stream::BufferedFile::create(move(file));
auto file = TRY(Core::File::open(path, mode));
return Core::BufferedFile::create(move(file));
}
inline ErrorOr<JsonValue> read_json_file(StringView path)
{
auto file = TRY(open_file(path, Core::Stream::OpenMode::Read));
auto file = TRY(open_file(path, Core::File::OpenMode::Read));
auto buffer = TRY(file->read_until_eof());
return JsonValue::from_string(buffer);