AK: Add the Input word to input-only buffered streams

This concerns both `BufferedSeekable` and `BufferedFile`.
This commit is contained in:
Lucas CHOLLET 2023-05-03 18:45:18 -04:00 committed by Andreas Kling
parent 48b000a36c
commit 8c34959b53
50 changed files with 101 additions and 102 deletions

View file

@ -264,17 +264,17 @@ private:
// needed at the moment.
template<SeekableStreamLike T>
class BufferedSeekable final : public SeekableStream {
class InputBufferedSeekable final : public SeekableStream {
friend BufferedHelper<T>;
public:
static ErrorOr<NonnullOwnPtr<BufferedSeekable<T>>> create(NonnullOwnPtr<T> stream, size_t buffer_size = 16384)
static ErrorOr<NonnullOwnPtr<InputBufferedSeekable<T>>> create(NonnullOwnPtr<T> stream, size_t buffer_size = 16384)
{
return BufferedHelper<T>::template create_buffered<BufferedSeekable>(move(stream), buffer_size);
return BufferedHelper<T>::template create_buffered<InputBufferedSeekable>(move(stream), buffer_size);
}
BufferedSeekable(BufferedSeekable&& other) = default;
BufferedSeekable& operator=(BufferedSeekable&& other) = default;
InputBufferedSeekable(InputBufferedSeekable&& other) = default;
InputBufferedSeekable& operator=(InputBufferedSeekable&& other) = default;
virtual ErrorOr<Bytes> read_some(Bytes buffer) override { return m_helper.read(move(buffer)); }
virtual ErrorOr<size_t> write_some(ReadonlyBytes buffer) override { return m_helper.stream().write_some(buffer); }
@ -311,11 +311,11 @@ public:
size_t buffer_size() const { return m_helper.buffer_size(); }
virtual ~BufferedSeekable() override = default;
virtual ~InputBufferedSeekable() override = default;
private:
BufferedSeekable(NonnullOwnPtr<T> stream, CircularBuffer buffer)
: m_helper(Badge<BufferedSeekable<T>> {}, move(stream), move(buffer))
InputBufferedSeekable(NonnullOwnPtr<T> stream, CircularBuffer buffer)
: m_helper(Badge<InputBufferedSeekable<T>> {}, move(stream), move(buffer))
{
}
@ -326,5 +326,5 @@ private:
#if USING_AK_GLOBALLY
using AK::BufferedHelper;
using AK::BufferedSeekable;
using AK::InputBufferedSeekable;
#endif

View file

@ -102,7 +102,7 @@ static ErrorOr<void> load_content_filters()
return file_or_error.release_error();
auto file = file_or_error.release_value();
auto ad_filter_list = TRY(Core::BufferedFile::create(move(file)));
auto ad_filter_list = TRY(Core::InputBufferedFile::create(move(file)));
auto buffer = TRY(ByteBuffer::create_uninitialized(4096));
Vector<String> patterns;
@ -131,7 +131,7 @@ static ErrorOr<void> load_autoplay_allowlist()
return file_or_error.release_error();
auto file = file_or_error.release_value();
auto allowlist = TRY(Core::BufferedFile::create(move(file)));
auto allowlist = TRY(Core::InputBufferedFile::create(move(file)));
auto buffer = TRY(ByteBuffer::create_uninitialized(4096));
Vector<String> origins;

View file

@ -32,7 +32,7 @@ static ErrorOr<void> handle_attached_debugger()
// "nopass". See https://sourceware.org/bugzilla/show_bug.cgi?id=9425
// for details.
auto unbuffered_status_file = TRY(Core::File::open("/proc/self/status"sv, Core::File::OpenMode::Read));
auto status_file = TRY(Core::BufferedFile::create(move(unbuffered_status_file)));
auto status_file = TRY(Core::InputBufferedFile::create(move(unbuffered_status_file)));
auto buffer = TRY(ByteBuffer::create_uninitialized(4096));
while (TRY(status_file->can_read_line())) {
auto line = TRY(status_file->read_line(buffer));

View file

@ -1699,7 +1699,7 @@ static DeprecatedString format_identifier(StringView owner, DeprecatedString ide
return identifier;
}
static ErrorOr<void> generate_unicode_locale_header(Core::BufferedFile& file, CLDR& cldr)
static ErrorOr<void> generate_unicode_locale_header(Core::InputBufferedFile& file, CLDR& cldr)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -1727,7 +1727,7 @@ namespace Locale {
return {};
}
static ErrorOr<void> generate_unicode_locale_implementation(Core::BufferedFile& file, CLDR& cldr)
static ErrorOr<void> generate_unicode_locale_implementation(Core::InputBufferedFile& file, CLDR& cldr)
{
StringBuilder builder;
SourceGenerator generator { builder };

View file

@ -1058,7 +1058,7 @@ static ErrorOr<void> parse_all_locales(DeprecatedString bcp47_path, DeprecatedSt
return {};
}
static ErrorOr<void> generate_unicode_locale_header(Core::BufferedFile& file, CLDR& cldr)
static ErrorOr<void> generate_unicode_locale_header(Core::InputBufferedFile& file, CLDR& cldr)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -1103,7 +1103,7 @@ namespace Locale {
return {};
}
static ErrorOr<void> generate_unicode_locale_implementation(Core::BufferedFile& file, CLDR& cldr)
static ErrorOr<void> generate_unicode_locale_implementation(Core::InputBufferedFile& file, CLDR& cldr)
{
auto string_index_type = cldr.unique_strings.type_that_fits();

View file

@ -743,7 +743,7 @@ static DeprecatedString format_identifier(StringView, DeprecatedString identifie
return identifier.to_titlecase();
}
static ErrorOr<void> generate_unicode_locale_header(Core::BufferedFile& file, CLDR& cldr)
static ErrorOr<void> generate_unicode_locale_header(Core::InputBufferedFile& file, CLDR& cldr)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -766,7 +766,7 @@ namespace Locale {
return {};
}
static ErrorOr<void> generate_unicode_locale_implementation(Core::BufferedFile& file, CLDR& cldr)
static ErrorOr<void> generate_unicode_locale_implementation(Core::InputBufferedFile& file, CLDR& cldr)
{
StringBuilder builder;
SourceGenerator generator { builder };

View file

@ -425,7 +425,7 @@ static ErrorOr<void> parse_all_locales(DeprecatedString core_path, DeprecatedStr
return {};
}
static ErrorOr<void> generate_unicode_locale_header(Core::BufferedFile& file, CLDR&)
static ErrorOr<void> generate_unicode_locale_header(Core::InputBufferedFile& file, CLDR&)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -446,7 +446,7 @@ namespace Locale {
return {};
}
static ErrorOr<void> generate_unicode_locale_implementation(Core::BufferedFile& file, CLDR& cldr)
static ErrorOr<void> generate_unicode_locale_implementation(Core::InputBufferedFile& file, CLDR& cldr)
{
StringBuilder builder;
SourceGenerator generator { builder };

View file

@ -162,7 +162,7 @@ static ErrorOr<void> parse_all_locales(DeprecatedString dates_path, CLDR& cldr)
return {};
}
static ErrorOr<void> generate_unicode_locale_header(Core::BufferedFile& file, CLDR&)
static ErrorOr<void> generate_unicode_locale_header(Core::InputBufferedFile& file, CLDR&)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -183,7 +183,7 @@ namespace Locale {
return {};
}
static ErrorOr<void> generate_unicode_locale_implementation(Core::BufferedFile& file, CLDR& cldr)
static ErrorOr<void> generate_unicode_locale_implementation(Core::InputBufferedFile& file, CLDR& cldr)
{
StringBuilder builder;
SourceGenerator generator { builder };

View file

@ -345,7 +345,7 @@ static ErrorOr<void> parse_time_zones(StringView time_zone_path, TimeZoneData& t
return {};
}
static ErrorOr<void> parse_time_zone_coordinates(Core::BufferedFile& file, TimeZoneData& time_zone_data)
static ErrorOr<void> parse_time_zone_coordinates(Core::InputBufferedFile& file, TimeZoneData& time_zone_data)
{
auto parse_coordinate = [](auto coordinate) {
VERIFY(coordinate.substring_view(0, 1).is_one_of("+"sv, "-"sv));
@ -448,7 +448,7 @@ static DeprecatedString format_identifier(StringView owner, DeprecatedString ide
return identifier;
}
static ErrorOr<void> generate_time_zone_data_header(Core::BufferedFile& file, TimeZoneData& time_zone_data)
static ErrorOr<void> generate_time_zone_data_header(Core::InputBufferedFile& file, TimeZoneData& time_zone_data)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -473,7 +473,7 @@ namespace TimeZone {
return {};
}
static ErrorOr<void> generate_time_zone_data_implementation(Core::BufferedFile& file, TimeZoneData& time_zone_data)
static ErrorOr<void> generate_time_zone_data_implementation(Core::InputBufferedFile& file, TimeZoneData& time_zone_data)
{
StringBuilder builder;
SourceGenerator generator { builder };

View file

@ -53,7 +53,7 @@ static void set_image_path_for_emoji(StringView emoji_resource_path, EmojiData&
emoji.image_path = emoji_data.unique_strings.ensure(move(file));
}
static ErrorOr<void> parse_emoji_test_data(Core::BufferedFile& file, EmojiData& emoji_data)
static ErrorOr<void> parse_emoji_test_data(Core::InputBufferedFile& file, EmojiData& emoji_data)
{
static constexpr auto group_header = "# group: "sv;
static constexpr auto subgroup_header = "# subgroup: "sv;
@ -117,7 +117,7 @@ static ErrorOr<void> parse_emoji_test_data(Core::BufferedFile& file, EmojiData&
return {};
}
static ErrorOr<void> parse_emoji_serenity_data(Core::BufferedFile& file, EmojiData& emoji_data)
static ErrorOr<void> parse_emoji_serenity_data(Core::InputBufferedFile& file, EmojiData& emoji_data)
{
static constexpr auto code_point_header = "U+"sv;
@ -203,7 +203,7 @@ static ErrorOr<void> validate_emoji(StringView emoji_resource_path, EmojiData& e
return {};
}
static ErrorOr<void> generate_emoji_data_header(Core::BufferedFile& file, EmojiData const&)
static ErrorOr<void> generate_emoji_data_header(Core::InputBufferedFile& file, EmojiData const&)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -212,7 +212,7 @@ static ErrorOr<void> generate_emoji_data_header(Core::BufferedFile& file, EmojiD
return {};
}
static ErrorOr<void> generate_emoji_data_implementation(Core::BufferedFile& file, EmojiData const& emoji_data)
static ErrorOr<void> generate_emoji_data_implementation(Core::InputBufferedFile& file, EmojiData const& emoji_data)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -333,7 +333,7 @@ Optional<Emoji> find_emoji_for_code_points(ReadonlySpan<u32> code_points)
return {};
}
static ErrorOr<void> generate_emoji_installation(Core::BufferedFile& file, EmojiData const& emoji_data)
static ErrorOr<void> generate_emoji_installation(Core::InputBufferedFile& file, EmojiData const& emoji_data)
{
StringBuilder builder;
SourceGenerator generator { builder };

View file

@ -218,7 +218,7 @@ static CodePointRange parse_code_point_range(StringView list)
return code_point_range;
}
static ErrorOr<void> parse_special_casing(Core::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_special_casing(Core::InputBufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
@ -289,7 +289,7 @@ static ErrorOr<void> parse_special_casing(Core::BufferedFile& file, UnicodeData&
return {};
}
static ErrorOr<void> parse_case_folding(Core::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_case_folding(Core::InputBufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
@ -337,7 +337,7 @@ static ErrorOr<void> parse_case_folding(Core::BufferedFile& file, UnicodeData& u
return {};
}
static ErrorOr<void> parse_prop_list(Core::BufferedFile& file, PropList& prop_list, bool multi_value_property = false, bool sanitize_property = false)
static ErrorOr<void> parse_prop_list(Core::InputBufferedFile& file, PropList& prop_list, bool multi_value_property = false, bool sanitize_property = false)
{
Array<u8, 1024> buffer;
@ -370,7 +370,7 @@ static ErrorOr<void> parse_prop_list(Core::BufferedFile& file, PropList& prop_li
return {};
}
static ErrorOr<void> parse_alias_list(Core::BufferedFile& file, PropList const& prop_list, Vector<Alias>& prop_aliases)
static ErrorOr<void> parse_alias_list(Core::InputBufferedFile& file, PropList const& prop_list, Vector<Alias>& prop_aliases)
{
DeprecatedString current_property;
Array<u8, 1024> buffer;
@ -416,7 +416,7 @@ static ErrorOr<void> parse_alias_list(Core::BufferedFile& file, PropList const&
return {};
}
static ErrorOr<void> parse_name_aliases(Core::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_name_aliases(Core::InputBufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
@ -447,7 +447,7 @@ static ErrorOr<void> parse_name_aliases(Core::BufferedFile& file, UnicodeData& u
return {};
}
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)
static ErrorOr<void> parse_value_alias_list(Core::InputBufferedFile& 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;
@ -493,7 +493,7 @@ static ErrorOr<void> parse_value_alias_list(Core::BufferedFile& file, StringView
return {};
}
static ErrorOr<void> parse_normalization_props(Core::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_normalization_props(Core::InputBufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
@ -627,7 +627,7 @@ static Optional<CodePointDecomposition> parse_decomposition_mapping(StringView s
return mapping;
}
static ErrorOr<void> parse_block_display_names(Core::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_block_display_names(Core::InputBufferedFile& file, UnicodeData& unicode_data)
{
Array<u8, 1024> buffer;
while (TRY(file.can_read_line())) {
@ -650,7 +650,7 @@ static ErrorOr<void> parse_block_display_names(Core::BufferedFile& file, Unicode
return {};
}
static ErrorOr<void> parse_unicode_data(Core::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> parse_unicode_data(Core::InputBufferedFile& file, UnicodeData& unicode_data)
{
Optional<u32> code_point_range_start;
@ -755,7 +755,7 @@ static ErrorOr<void> parse_unicode_data(Core::BufferedFile& file, UnicodeData& u
return {};
}
static ErrorOr<void> generate_unicode_data_header(Core::BufferedFile& file, UnicodeData& unicode_data)
static ErrorOr<void> generate_unicode_data_header(Core::InputBufferedFile& file, UnicodeData& unicode_data)
{
StringBuilder builder;
SourceGenerator generator { builder };
@ -870,7 +870,7 @@ ReadonlySpan<CaseFolding const*> case_folding_mapping(u32 code_point);
return {};
}
static ErrorOr<void> generate_unicode_data_implementation(Core::BufferedFile& file, UnicodeData const& unicode_data)
static ErrorOr<void> generate_unicode_data_implementation(Core::InputBufferedFile& file, UnicodeData const& unicode_data)
{
StringBuilder builder;
SourceGenerator generator { builder };

View file

@ -323,13 +323,13 @@ struct CanonicalLanguageID {
Vector<size_t> variants {};
};
inline ErrorOr<NonnullOwnPtr<Core::BufferedFile>> open_file(StringView path, Core::File::OpenMode mode)
inline ErrorOr<NonnullOwnPtr<Core::InputBufferedFile>> 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::File::open(path, mode));
return Core::BufferedFile::create(move(file));
return Core::InputBufferedFile::create(move(file));
}
inline ErrorOr<JsonValue> read_json_file(StringView path)

View file

@ -27,9 +27,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
bool had_errors = false;
for (auto filename : arguments.strings.slice(1)) {
auto const open_file = [](StringView filename) -> ErrorOr<NonnullOwnPtr<Core::BufferedFile>> {
auto const open_file = [](StringView filename) -> ErrorOr<NonnullOwnPtr<Core::InputBufferedFile>> {
auto file = TRY(Core::File::open(filename, Core::File::OpenMode::Read));
return Core::BufferedFile::create(move(file));
return Core::InputBufferedFile::create(move(file));
};
auto file_or_error = open_file(filename);

View file

@ -422,7 +422,7 @@ TEST_CASE(buffered_long_file_read)
{
auto maybe_file = Core::File::open("/usr/Tests/LibCore/long_lines.txt"sv, Core::File::OpenMode::Read);
EXPECT(!maybe_file.is_error());
auto maybe_buffered_file = Core::BufferedFile::create(maybe_file.release_value());
auto maybe_buffered_file = Core::InputBufferedFile::create(maybe_file.release_value());
EXPECT(!maybe_buffered_file.is_error());
auto file = maybe_buffered_file.release_value();
@ -444,7 +444,7 @@ TEST_CASE(buffered_small_file_read)
{
auto maybe_file = Core::File::open("/usr/Tests/LibCore/small.txt"sv, Core::File::OpenMode::Read);
EXPECT(!maybe_file.is_error());
auto maybe_buffered_file = Core::BufferedFile::create(maybe_file.release_value());
auto maybe_buffered_file = Core::InputBufferedFile::create(maybe_file.release_value());
EXPECT(!maybe_buffered_file.is_error());
auto file = maybe_buffered_file.release_value();
@ -472,7 +472,7 @@ TEST_CASE(buffered_file_tell_and_seek)
{
// We choose a buffer size of 12 bytes to cover half of the input file.
auto file = Core::File::open("/usr/Tests/LibCore/small.txt"sv, Core::File::OpenMode::Read).release_value();
auto buffered_file = Core::BufferedFile::create(move(file), 12).release_value();
auto buffered_file = Core::InputBufferedFile::create(move(file), 12).release_value();
// Initial state.
{
@ -562,7 +562,7 @@ TEST_CASE(buffered_file_without_newlines)
EXPECT(!file_wo_newlines->write_until_depleted(new_newlines_message.bytes()).is_error());
file_wo_newlines->close();
auto ro_file = Core::BufferedFile::create(Core::File::open(filename, Core::File::OpenMode::Read).release_value(), new_newlines_message.length() + 1).release_value();
auto ro_file = Core::InputBufferedFile::create(Core::File::open(filename, Core::File::OpenMode::Read).release_value(), new_newlines_message.length() + 1).release_value();
auto maybe_can_read_line = ro_file->can_read_line();
EXPECT(!maybe_can_read_line.is_error());

View file

@ -695,7 +695,7 @@ int main(int argc, char** argv)
return exit_setup_input_failure;
Array<u8, 1024> input_buffer {};
auto buffered_standard_input_or_error = Core::BufferedFile::create(standard_input_or_error.release_value());
auto buffered_standard_input_or_error = Core::InputBufferedFile::create(standard_input_or_error.release_value());
if (buffered_standard_input_or_error.is_error())
return exit_setup_input_failure;

View file

@ -19,7 +19,7 @@ static inline GLuint get_index_value(StringView& representation)
ErrorOr<NonnullRefPtr<Mesh>> WavefrontOBJLoader::load(String const& filename, NonnullOwnPtr<Core::File> file)
{
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
Vector<Vertex> vertices;
Vector<Vertex> normals;

View file

@ -48,7 +48,7 @@ DeprecatedString g_webdriver_content_ipc_path;
static ErrorOr<void> load_content_filters()
{
auto file = TRY(Core::File::open(TRY(String::formatted("{}/BrowserContentFilters.txt", Core::StandardPaths::config_directory())), Core::File::OpenMode::Read));
auto ad_filter_list = TRY(Core::BufferedFile::create(move(file)));
auto ad_filter_list = TRY(Core::InputBufferedFile::create(move(file)));
auto buffer = TRY(ByteBuffer::create_uninitialized(4096));
Browser::g_content_filters.clear_with_capacity();
@ -68,7 +68,7 @@ static ErrorOr<void> load_content_filters()
static ErrorOr<void> load_autoplay_allowlist()
{
auto file = TRY(Core::File::open(TRY(String::formatted("{}/BrowserAutoplayAllowlist.txt", Core::StandardPaths::config_directory())), Core::File::OpenMode::Read));
auto allowlist = TRY(Core::BufferedFile::create(move(file)));
auto allowlist = TRY(Core::InputBufferedFile::create(move(file)));
auto buffer = TRY(ByteBuffer::create_uninitialized(4096));
Browser::g_autoplay_allowlist.clear_with_capacity();

View file

@ -29,7 +29,7 @@ ErrorOr<void> DomainListModel::load()
{
// FIXME: This should be somewhat shared with Browser.
auto file = TRY(Core::File::open(TRY(filter_list_file_path()), Core::File::OpenMode::Read));
auto content_filter_list = TRY(Core::BufferedFile::create(move(file)));
auto content_filter_list = TRY(Core::InputBufferedFile::create(move(file)));
auto buffer = TRY(ByteBuffer::create_uninitialized(4096));
m_domain_list.clear_with_capacity();

View file

@ -18,7 +18,7 @@
namespace FileManager {
FileOperationProgressWidget::FileOperationProgressWidget(FileOperation operation, NonnullOwnPtr<Core::BufferedFile> helper_pipe, int helper_pipe_fd)
FileOperationProgressWidget::FileOperationProgressWidget(FileOperation operation, NonnullOwnPtr<Core::InputBufferedFile> helper_pipe, int helper_pipe_fd)
: m_operation(operation)
, m_helper_pipe(move(helper_pipe))
{

View file

@ -21,7 +21,7 @@ public:
private:
// FIXME: The helper_pipe_fd parameter is only needed because we can't get the fd from a Core::Stream.
FileOperationProgressWidget(FileOperation, NonnullOwnPtr<Core::BufferedFile> helper_pipe, int helper_pipe_fd);
FileOperationProgressWidget(FileOperation, NonnullOwnPtr<Core::InputBufferedFile> helper_pipe, int helper_pipe_fd);
void did_finish();
void did_error(StringView message);
@ -34,6 +34,6 @@ private:
FileOperation m_operation;
RefPtr<Core::Notifier> m_notifier;
OwnPtr<Core::BufferedFile> m_helper_pipe;
OwnPtr<Core::InputBufferedFile> m_helper_pipe;
};
}

View file

@ -99,7 +99,7 @@ ErrorOr<void> run_file_operation(FileOperation operation, Vector<DeprecatedStrin
}
auto pipe_input_file = TRY(Core::File::adopt_fd(pipe_fds[0], Core::File::OpenMode::Read));
auto buffered_pipe = TRY(Core::BufferedFile::create(move(pipe_input_file)));
auto buffered_pipe = TRY(Core::InputBufferedFile::create(move(pipe_input_file)));
(void)TRY(window->set_main_widget<FileOperationProgressWidget>(operation, move(buffered_pipe), pipe_fds[0]));
window->resize(320, 190);

View file

@ -215,7 +215,7 @@ ErrorOr<Vector<Color>> PaletteWidget::load_palette_file(NonnullOwnPtr<Core::File
{
Vector<Color> palette;
Array<u8, PAGE_SIZE> buffer;
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
while (TRY(buffered_file->can_read_line())) {
auto line = TRY(buffered_file->read_line(buffer));

View file

@ -169,7 +169,7 @@ ErrorOr<void> RunWindow::load_history()
{
m_path_history.clear();
auto file = TRY(Core::File::open(history_file_path(), Core::File::OpenMode::Read));
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
Array<u8, PAGE_SIZE> line_buffer;
while (!buffered_file->is_eof()) {

View file

@ -95,7 +95,7 @@ ErrorOr<void> WelcomeWidget::open_and_parse_tips_file()
{
auto path = TRY(String::formatted("{}/tips.txt", Core::StandardPaths::documents_directory()));
auto file = TRY(Core::File::open(path, Core::File::OpenMode::Read));
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
Array<u8, PAGE_SIZE> buffer;
while (TRY(buffered_file->can_read_line())) {

View file

@ -29,7 +29,7 @@ public:
auto try_read_lines = [&]() -> ErrorOr<void> {
auto unbuffered_file = TRY(Core::File::open(source_file_name, Core::File::OpenMode::Read));
auto file = TRY(Core::BufferedFile::create(move(unbuffered_file)));
auto file = TRY(Core::InputBufferedFile::create(move(unbuffered_file)));
Array<u8, 1024> buffer;
while (!file->is_eof())

View file

@ -178,7 +178,7 @@ void WordGame::read_words()
auto try_load_words = [&]() -> ErrorOr<void> {
auto response = TRY(Core::File::open("/res/words.txt"sv, Core::File::OpenMode::Read));
auto words_file = TRY(Core::BufferedFile::create(move(response)));
auto words_file = TRY(Core::InputBufferedFile::create(move(response)));
Array<u8, 128> buffer;
while (!words_file->is_eof()) {

View file

@ -34,7 +34,7 @@ FlacLoaderPlugin::FlacLoaderPlugin(NonnullOwnPtr<SeekableStream> stream)
Result<NonnullOwnPtr<FlacLoaderPlugin>, LoaderError> FlacLoaderPlugin::create(StringView path)
{
auto stream = LOADER_TRY(Core::BufferedFile::create(LOADER_TRY(Core::File::open(path, Core::File::OpenMode::Read))));
auto stream = LOADER_TRY(Core::InputBufferedFile::create(LOADER_TRY(Core::File::open(path, Core::File::OpenMode::Read))));
auto loader = make<FlacLoaderPlugin>(move(stream));
LOADER_TRY(loader->initialize());

View file

@ -23,7 +23,7 @@ MP3LoaderPlugin::MP3LoaderPlugin(NonnullOwnPtr<SeekableStream> stream)
Result<NonnullOwnPtr<MP3LoaderPlugin>, LoaderError> MP3LoaderPlugin::create(StringView path)
{
auto stream = LOADER_TRY(Core::BufferedFile::create(LOADER_TRY(Core::File::open(path, Core::File::OpenMode::Read))));
auto stream = LOADER_TRY(Core::InputBufferedFile::create(LOADER_TRY(Core::File::open(path, Core::File::OpenMode::Read))));
auto loader = make<MP3LoaderPlugin>(move(stream));
LOADER_TRY(loader->initialize());

View file

@ -26,7 +26,7 @@ QOALoaderPlugin::QOALoaderPlugin(NonnullOwnPtr<AK::SeekableStream> stream)
Result<NonnullOwnPtr<QOALoaderPlugin>, LoaderError> QOALoaderPlugin::create(StringView path)
{
auto stream = LOADER_TRY(Core::BufferedFile::create(LOADER_TRY(Core::File::open(path, Core::File::OpenMode::Read))));
auto stream = LOADER_TRY(Core::InputBufferedFile::create(LOADER_TRY(Core::File::open(path, Core::File::OpenMode::Read))));
auto loader = make<QOALoaderPlugin>(move(stream));
LOADER_TRY(loader->initialize());

View file

@ -26,7 +26,7 @@ WavLoaderPlugin::WavLoaderPlugin(NonnullOwnPtr<SeekableStream> stream)
Result<NonnullOwnPtr<WavLoaderPlugin>, LoaderError> WavLoaderPlugin::create(StringView path)
{
auto stream = LOADER_TRY(Core::BufferedFile::create(LOADER_TRY(Core::File::open(path, Core::File::OpenMode::Read))));
auto stream = LOADER_TRY(Core::InputBufferedFile::create(LOADER_TRY(Core::File::open(path, Core::File::OpenMode::Read))));
auto loader = make<WavLoaderPlugin>(move(stream));
LOADER_TRY(loader->initialize());

View file

@ -44,7 +44,7 @@ public:
ErrorOr<void> set_in(NonnullOwnPtr<Core::File> in)
{
m_in_fd = in->fd();
m_in = TRY(Core::BufferedFile::create(move(in)));
m_in = TRY(Core::InputBufferedFile::create(move(in)));
set_in_notifier();
return {};
}
@ -62,7 +62,7 @@ private:
ErrorOr<NonnullOwnPtr<Command>> read_command(StringView line) const;
Optional<int> m_in_fd {};
OwnPtr<Core::BufferedFile> m_in;
OwnPtr<Core::InputBufferedFile> m_in;
OwnPtr<Core::File> m_out;
RefPtr<Core::Notifier> m_in_notifier;
};

View file

@ -185,7 +185,7 @@ ErrorOr<ByteBuffer> GzipDecompressor::decompress_all(ReadonlyBytes bytes)
ErrorOr<void> GzipDecompressor::decompress_file(StringView input_filename, NonnullOwnPtr<Stream> output_stream)
{
auto input_file = TRY(Core::File::open(input_filename, Core::File::OpenMode::Read));
auto input_stream = TRY(Core::BufferedFile::create(move(input_file), 256 * KiB));
auto input_stream = TRY(Core::InputBufferedFile::create(move(input_file), 256 * KiB));
auto gzip_stream = GzipDecompressor { move(input_stream) };
auto buffer = TRY(ByteBuffer::create_uninitialized(256 * KiB));

View file

@ -41,7 +41,7 @@ ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open_for_system(DeprecatedString
ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open(DeprecatedString const& filename, AllowWriting allow_altering)
{
auto maybe_file = File::open(filename, allow_altering == AllowWriting::Yes ? File::OpenMode::ReadWrite : File::OpenMode::Read);
OwnPtr<BufferedFile> buffered_file;
OwnPtr<InputBufferedFile> buffered_file;
if (maybe_file.is_error()) {
// If we attempted to open a read-only file that does not exist, we ignore the error, making it appear
// the same as if we had opened an empty file. This behavior is a little weird, but is required by
@ -49,7 +49,7 @@ ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open(DeprecatedString const& file
if (!(allow_altering == AllowWriting::No && maybe_file.error().code() == ENOENT))
return maybe_file.release_error();
} else {
buffered_file = TRY(BufferedFile::create(maybe_file.release_value()));
buffered_file = TRY(InputBufferedFile::create(maybe_file.release_value()));
}
auto config_file = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ConfigFile(filename, move(buffered_file))));
@ -65,14 +65,14 @@ ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open(DeprecatedString const& file
ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open(DeprecatedString const& filename, NonnullOwnPtr<Core::File> file)
{
auto buffered_file = TRY(BufferedFile::create(move(file)));
auto buffered_file = TRY(InputBufferedFile::create(move(file)));
auto config_file = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ConfigFile(filename, move(buffered_file))));
TRY(config_file->reparse());
return config_file;
}
ConfigFile::ConfigFile(DeprecatedString const& filename, OwnPtr<BufferedFile> open_file)
ConfigFile::ConfigFile(DeprecatedString const& filename, OwnPtr<InputBufferedFile> open_file)
: m_filename(filename)
, m_file(move(open_file))
{

View file

@ -79,12 +79,12 @@ public:
DeprecatedString const& filename() const { return m_filename; }
private:
ConfigFile(DeprecatedString const& filename, OwnPtr<BufferedFile> open_file);
ConfigFile(DeprecatedString const& filename, OwnPtr<InputBufferedFile> open_file);
ErrorOr<void> reparse();
DeprecatedString m_filename;
OwnPtr<BufferedFile> m_file;
OwnPtr<InputBufferedFile> m_file;
HashMap<DeprecatedString, HashMap<DeprecatedString, DeprecatedString>> m_groups;
bool m_dirty { false };
};

View file

@ -19,7 +19,7 @@ namespace Core {
///
/// Use of Core::File for reading/writing data is deprecated.
/// Please use Core::File and Core::BufferedFile instead.
/// Please use Core::File and Core::InputBufferedFile instead.
///
class DeprecatedFile final : public IODevice {
C_OBJECT(DeprecatedFile)

View file

@ -105,6 +105,6 @@ private:
AK_ENUM_BITWISE_OPERATORS(File::OpenMode)
using BufferedFile = BufferedSeekable<File>;
using InputBufferedFile = InputBufferedSeekable<File>;
}

View file

@ -48,7 +48,7 @@ ErrorOr<void> Heap::open()
}
auto file = TRY(Core::File::open(name(), Core::File::OpenMode::ReadWrite));
m_file = TRY(Core::BufferedFile::create(move(file)));
m_file = TRY(Core::InputBufferedFile::create(move(file)));
if (file_size > 0) {
if (auto error_maybe = read_zero_block(); error_maybe.is_error()) {

View file

@ -128,7 +128,7 @@ private:
ErrorOr<void> initialize_zero_block();
ErrorOr<void> update_zero_block();
OwnPtr<Core::BufferedFile> m_file;
OwnPtr<Core::InputBufferedFile> m_file;
Block::Index m_highest_block_written { 0 };
Block::Index m_next_block { 1 };
Block::Index m_schemas_root { 0 };

View file

@ -1795,7 +1795,7 @@ ErrorOr<int> Shell::builtin_read(Main::Arguments arguments)
split_by_any_of = TRY(const_cast<AST::Value&>(*split_by_variable).resolve_as_string(*this));
auto file = TRY(Core::File::standard_input());
auto buffered_stream = TRY(Core::BufferedFile::create(move(file)));
auto buffered_stream = TRY(Core::InputBufferedFile::create(move(file)));
StringBuilder builder;
ByteBuffer buffer;

View file

@ -10,10 +10,10 @@
#include <LibCore/System.h>
#include <LibMain/Main.h>
static ErrorOr<NonnullOwnPtr<Core::BufferedFile>> open_file_or_stdin(StringView filename)
static ErrorOr<NonnullOwnPtr<Core::InputBufferedFile>> open_file_or_stdin(StringView filename)
{
auto file = TRY(Core::File::open_file_or_standard_stream(filename, Core::File::OpenMode::Read));
return TRY(Core::BufferedFile::create(move(file)));
return TRY(Core::InputBufferedFile::create(move(file)));
}
ErrorOr<int> serenity_main(Main::Arguments arguments)

View file

@ -73,7 +73,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return false;
}
auto buffered_file_or_error = Core::BufferedFile::create(file_or_error.release_value());
auto buffered_file_or_error = Core::InputBufferedFile::create(file_or_error.release_value());
if (buffered_file_or_error.is_error()) {
warnln("Failed to create buffer for file{} '{}': {}", file_number, path, buffered_file_or_error.error());
return false;
@ -83,8 +83,8 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return true;
};
OwnPtr<Core::BufferedFile> file1;
OwnPtr<Core::BufferedFile> file2;
OwnPtr<Core::InputBufferedFile> file1;
OwnPtr<Core::InputBufferedFile> file2;
if (!(open_file(file1_path, file1, 1) && open_file(file2_path, file2, 2)))
return 1;

View file

@ -163,7 +163,7 @@ ErrorOr<int> serenity_main(Main::Arguments args)
if (!pattern_file.is_empty()) {
auto file = TRY(Core::File::open(pattern_file, Core::File::OpenMode::Read));
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
Array<u8, PAGE_SIZE> buffer;
while (!buffered_file->is_eof()) {
auto next_pattern = TRY(buffered_file->read_line(buffer));
@ -242,7 +242,7 @@ ErrorOr<int> serenity_main(Main::Arguments args)
auto handle_file = [&matches, binary_mode, count_lines, quiet_mode,
user_specified_multiple_files, &matched_line_count, &did_match_something](StringView filename, bool print_filename) -> ErrorOr<void> {
auto file = TRY(Core::File::open(filename, Core::File::OpenMode::Read));
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
for (size_t line_number = 1; TRY(buffered_file->can_read_line()); ++line_number) {
Array<u8, PAGE_SIZE> buffer;

View file

@ -22,7 +22,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
args_parser.parse(arguments);
auto file = TRY(Core::File::open_file_or_standard_stream(filename, Core::File::OpenMode::Read));
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
auto stream = TRY(Compress::LzmaDecompressor::create_from_container(move(buffered_file)));
// Arbitrarily chosen buffer size.

View file

@ -113,7 +113,7 @@ static ErrorOr<void> mount_all()
bool all_ok = true;
auto process_fstab_entries = [&](StringView path) -> ErrorOr<void> {
auto file_unbuffered = TRY(Core::File::open(path, Core::File::OpenMode::Read));
auto file = TRY(Core::BufferedFile::create(move(file_unbuffered)));
auto file = TRY(Core::InputBufferedFile::create(move(file_unbuffered)));
while (TRY(file->can_read_line())) {
auto line = TRY(file->read_line(buffer));

View file

@ -613,7 +613,7 @@ enum class CycleDecision {
class File {
AK_MAKE_NONCOPYABLE(File);
File(LexicalPath input_file_path, NonnullOwnPtr<Core::BufferedFile>&& file, OwnPtr<Core::File>&& output, OwnPtr<FileSystem::TempFile>&& temp_file)
File(LexicalPath input_file_path, NonnullOwnPtr<Core::InputBufferedFile>&& file, OwnPtr<Core::File>&& output, OwnPtr<FileSystem::TempFile>&& temp_file)
: m_input_file_path(move(input_file_path))
, m_file(move(file))
, m_output(move(output))
@ -625,7 +625,7 @@ public:
// Used for -i mode.
static ErrorOr<File> create_with_output_file(LexicalPath input_path, NonnullOwnPtr<Core::File>&& file)
{
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
auto temp_file = TRY(FileSystem::TempFile::create_temp_file());
// Open the file as read-write, since we need to later copy its contents to the original file.
auto output_file = TRY(Core::File::open(temp_file->path(), Core::File::OpenMode::ReadWrite | Core::File::OpenMode::Truncate));
@ -635,7 +635,7 @@ public:
// Used for non -i mode.
static ErrorOr<File> create(LexicalPath input_path, NonnullOwnPtr<Core::File>&& file)
{
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
return File { move(input_path), move(buffered_file), nullptr, nullptr };
}
@ -650,7 +650,7 @@ public:
// We hack standard output into `File` to avoid having two versions of `write_pattern_space`.
return File {
LexicalPath { "/proc/self/fd/1" },
TRY(Core::BufferedFile::create(TRY(Core::File::standard_input()))),
TRY(Core::InputBufferedFile::create(TRY(Core::File::standard_input()))),
TRY(Core::File::standard_output()),
nullptr,
};
@ -697,12 +697,11 @@ public:
private:
LexicalPath m_input_file_path;
NonnullOwnPtr<Core::BufferedFile> m_file;
NonnullOwnPtr<Core::InputBufferedFile> m_file;
// Only in use if we're editing in place.
OwnPtr<Core::File> m_output;
OwnPtr<FileSystem::TempFile> m_output_temp_file;
size_t m_line_number { 0 };
DeprecatedString m_current_line;
constexpr static size_t MAX_SUPPORTED_LINE_SIZE = 4096;

View file

@ -62,7 +62,7 @@ struct Options {
static ErrorOr<void> load_file(Options options, StringView filename, Vector<Line>& lines, HashTable<Line>& seen)
{
auto file = TRY(Core::BufferedFile::create(
auto file = TRY(Core::InputBufferedFile::create(
TRY(Core::File::open_file_or_standard_stream(filename, Core::File::OpenMode::Read))));
// FIXME: Unlimited line length

View file

@ -151,7 +151,7 @@ private:
NonnullRefPtr<SQL::SQLClient> m_sql_client;
SQL::ConnectionID m_connection_id { 0 };
Core::EventLoop& m_loop;
OwnPtr<Core::BufferedFile> m_input_file { nullptr };
OwnPtr<Core::InputBufferedFile> m_input_file { nullptr };
bool m_quit_when_files_read { false };
Vector<DeprecatedString> m_input_file_chain {};
Array<u8, 4096> m_buffer {};
@ -166,7 +166,7 @@ private:
return {};
}
auto buffered_file_or_error = Core::BufferedFile::create(file_or_error.release_value());
auto buffered_file_or_error = Core::InputBufferedFile::create(file_or_error.release_value());
if (buffered_file_or_error.is_error()) {
warnln("Input file {} could not be buffered: {}", file_name, buffered_file_or_error.error());
return {};

View file

@ -74,7 +74,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
if (!directory.is_empty())
TRY(Core::System::chdir(directory));
NonnullOwnPtr<Stream> input_stream = TRY(Core::BufferedFile::create(TRY(Core::File::open_file_or_standard_stream(archive_file, Core::File::OpenMode::Read))));
NonnullOwnPtr<Stream> input_stream = TRY(Core::InputBufferedFile::create(TRY(Core::File::open_file_or_standard_stream(archive_file, Core::File::OpenMode::Read))));
if (gzip)
input_stream = make<Compress::GzipDecompressor>(move(input_stream));

View file

@ -79,7 +79,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return 0;
}
auto infile = TRY(Core::BufferedFile::create(TRY(Core::File::open_file_or_standard_stream(inpath, Core::File::OpenMode::Read))));
auto infile = TRY(Core::InputBufferedFile::create(TRY(Core::File::open_file_or_standard_stream(inpath, Core::File::OpenMode::Read))));
auto outfile = TRY(Core::File::open_file_or_standard_stream(outpath, Core::File::OpenMode::Write));
size_t count = 0;

View file

@ -22,7 +22,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
args_parser.parse(arguments);
auto file = TRY(Core::File::open_file_or_standard_stream(filename, Core::File::OpenMode::Read));
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
auto buffered_file = TRY(Core::InputBufferedFile::create(move(file)));
auto stream = TRY(Compress::XzDecompressor::create(move(buffered_file)));
// Arbitrarily chosen buffer size.