1#ifndef LIBFILEZILLA_FILE_HEADER
2#define LIBFILEZILLA_FILE_HEADER
8#include "glue/windows.hpp"
28class FZ_PUBLIC_SYMBOL file final
32 typedef HANDLE file_t;
91 file(file
const&) =
delete;
92 file& operator=(file
const&) =
delete;
94 file(file && op)
noexcept;
95 file& operator=(file && op)
noexcept;
98 explicit operator bool()
const {
return opened(); }
173 inline int64_t read(
void *buf, int64_t count) {
175 return res ? res.
value_ : -1;
191 inline int64_t write(
void const* buf, int64_t count) {
193 return res ? res.
value_ : -1;
217 HANDLE fd_{INVALID_HANDLE_VALUE};
240 return static_cast<file::creation_flags>(
static_cast<std::underlying_type_t<file::creation_flags>
>(lhs) |
static_cast<std::underlying_type_t<file::creation_flags>
>(rhs));
The buffer class is a simple buffer where data can be appended at the end and consumed at the front....
Definition buffer.hpp:27
Represents a point of time in wallclock, tracking the timestamps accuracy/precision.
Definition time.hpp:41
Lean class for file access.
Definition file.hpp:29
mode
Files can be opened for reading, writing, or both.
Definition file.hpp:38
creation_flags
Creation flags when opening file for writing.
Definition file.hpp:51
@ current_user_and_admins_only
Definition file.hpp:76
@ existing
Keep existing data if file exists, otherwise create new.
Definition file.hpp:53
@ empty
Truncate file if already existing, otherwise create new.
Definition file.hpp:56
@ current_user_only
Definition file.hpp:64
int64_t seek(int64_t offset, seek_mode m)
Relative seek based on seek mode.
rwresult read2(void *buf, size_t count)
Read data from file.
bool truncate()
Truncate the file to the current position of the file pointer.
int64_t size() const
Gets size of file.
datetime get_modification_time()
Gets modification time.
rwresult write2(void const *buf, size_t count)
Write data to file.
file_t fd()
Returns the raw file descriptor, but retains ownership.
Definition file.hpp:110
seek_mode
Used by seek.
Definition file.hpp:117
@ begin
Seek from beginning of file.
Definition file.hpp:119
@ end
Seek from end of file.
Definition file.hpp:125
@ current
Seek from current position in the file.
Definition file.hpp:122
bool set_modification_time(datetime const &t)
Sets modification time to specified time.
file(file_t fd)
Creates file from descriptor.
int64_t position()
Get Current position in file.
Definition file.hpp:148
bool fsync()
Ensure data is flushed to disk.
Small class to return filesystem errors.
Definition fsresult.hpp:26
Holds the result of read/write operations.
Definition fsresult.hpp:77
size_t value_
Undefined if error_ is not none.
Definition fsresult.hpp:121
result and rwresult wrappers for dealing with file system errors.
Sets some global macros and further includes string.hpp.
The namespace used by libfilezilla.
Definition apply.hpp:17
rwresult read_file(fz::file &f, buffer &out, size_t max_size)
Reads the entire source file and appends if to the buffer.
std::wstring native_string
A string in the system's native character type and encoding. Note: This typedef changes depending on...
Definition string.hpp:36
result remove_file(native_string const &name, bool missing_file_is_error)
remove the specified file.