9#ifndef LLDB_HOST_STREAMFILE_H
10#define LLDB_HOST_STREAMFILE_H
32 uint32_t permissions = lldb::eFilePermissionsFileDefault);
46 void Flush()
override;
51 size_t WriteImpl(
const void *s,
size_t length)
override;
72 std::unique_lock<std::recursive_mutex>
m_lock;
77 using Mutex = std::recursive_mutex;
An abstract base class for files.
const LockableStreamFile & operator=(const LockableStreamFile &)=delete
LockableStreamFile(std::shared_ptr< StreamFile > stream_file_sp, Mutex &mutex)
LockableStreamFile(FILE *fh, bool transfer_ownership, Mutex &mutex)
LockableStreamFile(StreamFile &stream_file, Mutex &mutex)
LockableStreamFile(std::shared_ptr< File > file_sp, Mutex &mutex)
std::recursive_mutex Mutex
File & GetUnlockedFile()
Unsafe accessors to get the underlying File without a lock.
std::shared_ptr< File > GetUnlockedFileSP()
std::shared_ptr< File > m_file_sp
LockableStreamFile(const LockableStreamFile &)=delete
LockedStreamFile(LockedStreamFile &&other)
friend class LockableStreamFile
LockedStreamFile(std::shared_ptr< File > file, std::recursive_mutex &mutex)
std::unique_lock< std::recursive_mutex > m_lock
const StreamFile & operator=(const StreamFile &)=delete
StreamFile(uint32_t flags, uint32_t addr_size, lldb::ByteOrder byte_order)
const File & GetFile() const
StreamFile(std::shared_ptr< File > file)
std::shared_ptr< File > m_file_sp
void Flush() override
Flush the stream.
StreamFile(const StreamFile &)=delete
size_t WriteImpl(const void *s, size_t length) override
Output character bytes to the stream.
std::shared_ptr< File > GetFileSP()
Stream(uint32_t flags, uint32_t addr_size, lldb::ByteOrder byte_order, bool colors=false)
Construct with flags and address size and byte order.
A class that represents a running process on the host machine.
ByteOrder
Byte ordering definitions.