add a Stream::new_empty() method

This commit is contained in:
2024-12-05 17:49:32 +01:00
parent 1b32e4fc87
commit 98148a5575
4 changed files with 19 additions and 1 deletions

View File

@@ -79,6 +79,12 @@ bool Log::is_wchar_stream() const
} }
Log * Log::new_empty() const
{
return new Log();
}
void Log::clear() void Log::clear()
{ {

View File

@@ -77,6 +77,8 @@ public:
bool is_char_stream() const; bool is_char_stream() const;
bool is_wchar_stream() const; bool is_wchar_stream() const;
Log * new_empty() const;
void clear(); void clear();
bool empty() const; bool empty() const;
size_t size() const; size_t size() const;

View File

@@ -61,6 +61,8 @@ public:
virtual ~Stream() {}; virtual ~Stream() {};
virtual Stream * new_empty() const = 0;
virtual bool is_char_stream() const = 0; virtual bool is_char_stream() const = 0;
virtual bool is_wchar_stream() const = 0; virtual bool is_wchar_stream() const = 0;
@@ -79,6 +81,8 @@ public:
virtual char get_char(size_t index) const = 0; virtual char get_char(size_t index) const = 0;
virtual wchar_t get_wchar(size_t index) const = 0; virtual wchar_t get_wchar(size_t index) const = 0;
virtual void escape_input(bool) {};
virtual Stream & operator<<(const char * str) = 0; virtual Stream & operator<<(const char * str) = 0;
virtual Stream & operator<<(const std::string & str) = 0; virtual Stream & operator<<(const std::string & str) = 0;
virtual Stream & operator<<(const wchar_t * str) = 0; virtual Stream & operator<<(const wchar_t * str) = 0;

View File

@@ -136,6 +136,8 @@ public:
bool is_char_stream() const; bool is_char_stream() const;
bool is_wchar_stream() const; bool is_wchar_stream() const;
TextStreamBase * new_empty() const;
void clear(); void clear();
bool empty() const; bool empty() const;
size_t size() const; size_t size() const;
@@ -540,7 +542,11 @@ bool TextStreamBase<char_type, stack_size, heap_block_size>::is_wchar_stream() c
} }
template<typename char_type, size_t stack_size, size_t heap_block_size>
TextStreamBase<char_type, stack_size, heap_block_size> * TextStreamBase<char_type, stack_size, heap_block_size>::new_empty() const
{
return new TextStreamBase<char_type, stack_size, heap_block_size>();
}
template<typename char_type, size_t stack_size, size_t heap_block_size> template<typename char_type, size_t stack_size, size_t heap_block_size>