CFile.h 780 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include <AK/String.h>
  3. #include <LibCore/CIODevice.h>
  4. class CFile final : public CIODevice {
  5. C_OBJECT(CFile)
  6. public:
  7. CFile(CObject* parent = nullptr)
  8. : CIODevice(parent)
  9. {
  10. }
  11. explicit CFile(const StringView&, CObject* parent = nullptr);
  12. virtual ~CFile() override;
  13. String filename() const { return m_filename; }
  14. void set_filename(const StringView& filename) { m_filename = filename; }
  15. virtual bool open(CIODevice::OpenMode) override;
  16. enum class ShouldCloseFileDescription {
  17. No = 0,
  18. Yes
  19. };
  20. bool open(int fd, CIODevice::OpenMode, ShouldCloseFileDescription);
  21. private:
  22. String m_filename;
  23. ShouldCloseFileDescription m_should_close_file_descriptor { ShouldCloseFileDescription::Yes };
  24. };