summaryrefslogtreecommitdiff
path: root/include/lldb/Core/StreamFile.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Core/StreamFile.h')
-rw-r--r--include/lldb/Core/StreamFile.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/include/lldb/Core/StreamFile.h b/include/lldb/Core/StreamFile.h
index 54aeab16b3f1..712b289aa8d9 100644
--- a/include/lldb/Core/StreamFile.h
+++ b/include/lldb/Core/StreamFile.h
@@ -30,23 +30,27 @@ public:
StreamFile(const char *path);
- StreamFile(const char *path, uint32_t options,
+ StreamFile(const char *path, File::OpenOptions options,
uint32_t permissions = lldb::eFilePermissionsFileDefault);
StreamFile(FILE *fh, bool transfer_ownership);
+ StreamFile(std::shared_ptr<File> file) : m_file_sp(file) { assert(file); };
+
~StreamFile() override;
- File &GetFile() { return m_file; }
+ File &GetFile() { return *m_file_sp; }
+
+ const File &GetFile() const { return *m_file_sp; }
- const File &GetFile() const { return m_file; }
+ std::shared_ptr<File> GetFileSP() { return m_file_sp; }
void Flush() override;
protected:
// Classes that inherit from StreamFile can see and modify these
- File m_file;
+ std::shared_ptr<File> m_file_sp; // never NULL
size_t WriteImpl(const void *s, size_t length) override;
private: