6#ifndef SPDLOG_HEADER_ONLY
26 : event_handlers_(event_handlers)
90 if (std::fflush(
fd_) != 0)
125 size_t msg_size = buf.size();
126 auto data = buf.data();
127 if (std::fwrite(
data, 1, msg_size,
fd_) != msg_size)
162 auto ext_index = fname.rfind(
'.');
166 if (ext_index == filename_t::npos || ext_index == 0 || ext_index == fname.size() - 1)
172 auto folder_index = fname.find_last_of(details::os::folder_seps_filename);
173 if (folder_index != filename_t::npos && folder_index >= ext_index - 1)
179 return std::make_tuple(fname.substr(0, ext_index), fname.substr(ext_index));
const filename_t & filename() const
Definition file_helper-inl.h:142
size_t size() const
Definition file_helper-inl.h:133
void reopen(bool truncate)
Definition file_helper-inl.h:79
void flush()
Definition file_helper-inl.h:88
void write(const memory_buf_t &buf)
Definition file_helper-inl.h:123
static std::tuple< filename_t, filename_t > split_by_extension(const filename_t &fname)
Definition file_helper-inl.h:160
const int open_tries_
Definition file_helper.h:53
const unsigned int open_interval_
Definition file_helper.h:54
filename_t filename_
Definition file_helper.h:56
~file_helper()
Definition file_helper-inl.h:30
void close()
Definition file_helper-inl.h:104
void sync()
Definition file_helper-inl.h:96
void open(const filename_t &fname, bool truncate=false)
Definition file_helper-inl.h:35
std::FILE * fd_
Definition file_helper.h:55
file_event_handlers event_handlers_
Definition file_helper.h:57
#define SPDLOG_FILENAME_T(s)
Definition common.h:132
#define SPDLOG_INLINE
Definition common.h:47
SPDLOG_INLINE filename_t dir_name(const filename_t &path)
Definition os-inl.h:581
SPDLOG_INLINE std::string filename_to_str(const filename_t &filename)
Definition os-inl.h:399
SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename_t &mode)
Definition os-inl.h:128
SPDLOG_INLINE size_t filesize(FILE *f)
Definition os-inl.h:214
SPDLOG_INLINE bool create_dir(const filename_t &path)
Definition os-inl.h:542
SPDLOG_INLINE bool fsync(FILE *fp)
Definition os-inl.h:607
SPDLOG_INLINE void sleep_for_millis(unsigned int milliseconds) SPDLOG_NOEXCEPT
Definition os-inl.h:381
SPDLOG_INLINE void throw_spdlog_ex(const std::string &msg, int last_errno)
Definition common-inl.h:75
std::string filename_t
Definition common.h:131
fmt::basic_memory_buffer< char, 250 > memory_buf_t
Definition common.h:173
std::function< void(const filename_t &filename, std::FILE *file_stream)> before_close
Definition common.h:337
std::function< void(const filename_t &filename)> before_open
Definition common.h:335
std::function< void(const filename_t &filename, std::FILE *file_stream)> after_open
Definition common.h:336
std::function< void(const filename_t &filename)> after_close
Definition common.h:338
annotation details
Definition tag_strings.h:125