NRE_FileStream.hpp
Go to the documentation of this file.
1 
10  #pragma once
11 
12  #include "../File/NRE_File.hpp"
13  #include "../../Header/NRE_Exception.hpp"
14 
19  namespace NRE {
24  namespace IO {
25 
30  class FileStream : public File {
31  private: //Fields
32  std::fstream file;
34  public: // Methods
35  //## Constructor ##//
39  FileStream() = delete;
44  FileStream(File const& p);
45 
46  //## Copy-Constructor ##//
51  FileStream(FileStream const& f) = delete;
52 
53  //## Move-Constructor ##//
58  FileStream(FileStream && f) = default;
59 
60  //## Deconstructor ##//
64  virtual ~FileStream() = default;
65 
66  //## Getter ##//
70  virtual std::ios_base::openmode getMode() const = 0;
74  bool isOpen() const;
75 
76  //## Methods ##//
80  void open();
84  void openEmpty();
85 
86  //## Assignment Operator ##//
92  FileStream& operator =(FileStream const& f) = delete;
98  FileStream& operator=(FileStream && f) = default;
99 
100  protected: // Methods
104  std::fstream& getStream();
105  };
106 
113  std::ostream& operator <<(std::ostream& stream, FileStream const& o);
114  }
115  }
116 
117  #include "NRE_FileStream.tpp"
Manage a file path and ensure that&#39;s the file exist before accessing it.
Definition: NRE_File.hpp:32
IO&#39;s API.
FileStream & operator=(FileStream const &f)=delete
virtual ~FileStream()=default
The base interface for Input, Output and IO file.
Definition: NRE_FileStream.hpp:30
The NearlyRealEngine&#39;s global namespace.
bool isOpen() const
virtual std::ios_base::openmode getMode() const =0
std::fstream & getStream()