xtd - Reference Guide  0.2.0
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
stream_reader.h
Go to the documentation of this file.
1 #pragma once
5 
6 #include <fstream>
7 #include <optional>
8 #include "text_reader.h"
9 
11 namespace xtd {
13  namespace io {
21  public:
28  stream_reader(std::istream& stream);
30  ~stream_reader();
32 
35  std::optional<std::reference_wrapper<std::istream>> base_stream() const;
36 
39  bool end_of_stream() const;
40 
42  void close() override;
43 
46  int32_t peek() const override;
47 
50  int32_t read() override;
51 
52  private:
53  std::istream* stream_ = nullptr;
54  bool delete_when_destroy_ = false;
55  };
56  }
57 }
int32_t peek() const override
Reads the next character without changing the state of the reader or the character source...
Contains xtd::io::text_reader class.
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Implements a xtd::io::text_reader that reads characters from a byte stream.
Definition: stream_reader.h:20
bool end_of_stream() const
Gets a value that indicates whether the current stream position is at the end of the stream...
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
void close() override
Closes the stream_reader object and the underlying stream, and releases any system resources associat...
Performs operations on std::basic_string instances that contain file or directory path information...
Definition: path.h:29
stream_reader(const xtd::ustring &path)
Initializes a new instance of the stream_reader class for the specified file name.
Represents a reader that can read a sequential series of characters.
Definition: text_reader.h:29
int32_t read() override
Reads the next character from the input stream and advances the character position by one character...
std::optional< std::reference_wrapper< std::istream > > base_stream() const
Returns the underlying stream.