53 stream <<
fmt(
"\\{ '{}', {}}", io->
name(), io->
io_closed ?
"closed" :
"active");
61 mos_warn(
"%p is already closed", (
void *)
this);
73 mos_warn(
"%p is already closed", (
void *)
this);
91 virtual
size_t read(
void *buf,
size_t count) final;
92 virtual
size_t pread(
void *buf,
size_t count,
off_t offset) final;
93 virtual
size_t write(const
void *buf,
size_t count) final;
102 virtual
size_t on_read(
void *,
size_t);
103 virtual
size_t on_write(const
void *,
size_t);
#define mos_warn(fmt,...)
mos::basic_string< char > string
virtual size_t pread(void *buf, size_t count, off_t offset) final
static bool IsValid(const IO *io)
virtual mos::string name() const
virtual size_t read(void *buf, size_t count) final
virtual bool VerifyMMapPermissions(VMFlags flags, bool is_private) final
bool unmap(vmap_t *vmap, bool *unmapped)
IO(IOFlags flags, io_type_t type)
friend mos::SyslogStreamWriter operator<<(mos::SyslogStreamWriter stream, const IO *io)
virtual bool on_munmap(vmap_t *, bool *)
virtual void on_closed()=0
virtual size_t on_write(const void *, size_t)
virtual off_t tell() final
virtual off_t seek(off_t, io_seek_whence_t) final
bool map(vmap_t *vmap, off_t offset)
virtual size_t on_read(void *, size_t)
virtual size_t write(const void *buf, size_t count) final
virtual off_t on_seek(off_t, io_seek_whence_t)
virtual bool on_mmap(vmap_t *, off_t)
std::atomic_size_t atomic_t
#define MOS_ENUM_FLAGS(enum, flags)