file_content
Defined in header: <orcus/stream.hpp>
-
class file_content
Represents the content of a file.
The file content is memory-mapped initially, but may later become in-memory if the non-utf-8 content gets converted to utf-8.
Public Functions
-
file_content(const file_content&) = delete
-
file_content &operator=(const file_content&) = delete
-
file_content()
-
file_content(file_content &&other)
-
file_content(const std::filesystem::path &filepath)
-
~file_content()
-
const char *data() const
Obtain the memory address to the first character in the content buffer.
- Returns:
pointer to the first character in the buffer.
-
size_t size() const
Return the size of the content i.e. the number of characters in the content buffer.
- Returns:
size of the content.
-
bool empty() const
Query whether or not the content is empty.
- Returns:
true if the content is empty, otherwise false.
-
void swap(file_content &other)
Swap content with another instance.
- Parameters:
other – another instance to swap content with.
-
void load(std::string_view filepath)
Load from a new file. This will invalidate the pointer returned from the data() method prior to the call.
- Parameters:
filepath – path of the file to load from.
-
void convert_to_utf8()
Convert a non-utf-8 stream to a utf-8 one if the source stream contains a byte order mark. If not, it does nothing. When the conversion happens, the converted content will be stored in-memory.
-
std::string_view str() const
-
file_content(const file_content&) = delete