Sane C++ Libraries
C++ Platform Abstraction Libraries
Loading...
Searching...
No Matches
File.h
1// Copyright (c) Stefano Cristiano
2// SPDX-License-Identifier: MIT
3#pragma once
4#include "../Strings/StringView.h"
5#include "FileDescriptor.h"
6
7namespace SC
8{
9struct Buffer;
10struct String;
13
18{
20
21 File(FileDescriptor& descriptor) : fd(descriptor) {}
22
27 [[nodiscard]] Result open(StringView path, FileOpen mode);
28
33 [[nodiscard]] Result readUntilEOF(Buffer& destination);
34
39 [[nodiscard]] Result readUntilEOF(String& destination);
40
41 private:
42 struct Internal;
43 struct ReadResult
44 {
45 size_t actuallyRead = 0;
46 bool isEOF = false;
47 };
48 Result readUntilEOFTemplate(Buffer& destination);
49};
50
52} // namespace SC
#define SC_COMPILER_EXPORT
Macro for symbol visibility in non-MSVC compilers.
Definition Compiler.h:78
An heap allocated byte buffer that can optionally use an inline buffer.
Definition Buffer.h:28
File Descriptor (use File to open and use it with strings and buffers).
Definition FileDescriptor.h:75
Options used to open a file descriptor.
Definition FileDescriptor.h:47
Wraps a SC::FileDescriptor to open it and use strings / buffers.
Definition File.h:18
Result readUntilEOF(String &destination)
Reads into a given string until End of File (EOF) is signaled It works also for non-seekable file des...
Result readUntilEOF(Buffer &destination)
Reads into a given dynamic buffer until End of File (EOF) is signaled.
Result open(StringView path, FileOpen mode)
Opens file at path with a given mode
An ascii string used as boolean result. SC_TRY macro forwards errors to caller.
Definition Result.h:12
Non-owning view over a range of characters with UTF Encoding.
Definition StringView.h:48
A non-modifiable owning string with associated encoding.
Definition String.h:29