102 Ptr (
const Ptr&) =
default;
109 nonvirtual
Ptr& operator= (
const Ptr&) =
default;
110 nonvirtual
Ptr& operator= (
Ptr&&) =
default;
154 template <
typename ELEMENT_TYPE2,
size_t EXTENT_2>
155 nonvirtual
void Write (span<ELEMENT_TYPE2, EXTENT_2> elts)
const
156 requires (same_as<ELEMENT_TYPE, remove_cvref_t<ELEMENT_TYPE2>> or
157 (same_as<ELEMENT_TYPE, byte> and (same_as<remove_cvref_t<ELEMENT_TYPE2>, uint8_t>)) or
158 (same_as<ELEMENT_TYPE,
Character> and (Characters::IUNICODECanUnambiguouslyConvertFrom<remove_cvref_t<ELEMENT_TYPE2>>)));
159 nonvirtual
void Write (const ELEMENT_TYPE& e) const;
160 nonvirtual
void Write (const Memory::BLOB& blob) const
161 requires (same_as<ELEMENT_TYPE,
byte>);
163 requires (same_as<ELEMENT_TYPE,
Character>);
164 template <Characters::IUNICODECanUnambiguouslyConvertFrom CHAR_T>
165 nonvirtual
void Write (const CHAR_T* cStr) const
166 requires (same_as<ELEMENT_TYPE,
Character>);
172 template <typename ELT_2_WRITE>
173 nonvirtual
void WriteLn (ELT_2_WRITE&& arg) const
174 requires (same_as<ELEMENT_TYPE,
Character>);
180 nonvirtual
void PrintF (const
wchar_t* format, ...)
181 requires (same_as<ELEMENT_TYPE,
Character>);
215 nonvirtual
void Close () const;
227 nonvirtual
bool IsOpen () const;
242 nonvirtual
void Flush () const;
254 template <typename T>
255 const typename OutputStream::
Ptr<ELEMENT_TYPE>& operator<< (const T& write2TextStream) const
256 requires (same_as<ELEMENT_TYPE, Characters::
Character>);
277 [[deprecated ("Since Strokka v3.0d5 deprecated since not widely used and very specific purpose and directly implementingable given "
279 GetOffsetToEndOfStream ()
const
283 Seek (Whence::eFromStart, savedReadFrom);
284 size -= savedReadFrom;
287 [[deprecated (
"Since Stroika v3.0d5 use span overload of Write")]]
void Write (
const ELEMENT_TYPE* start,
const ELEMENT_TYPE* end)
const
289 Write (span{start, end});
291 [[deprecated (
"Since Stroika v3.0d5 use span overload")]]
void Write (
const uint8_t* start,
const uint8_t* end)
const
292 requires (same_as<ELEMENT_TYPE, byte>)
294 this->
Write (span{start, end});
296 template <
typename POD_TYPE>
297 [[deprecated (
"Since Stroika v3.0d5 use span overload of WriteRaw")]]
void WriteRaw (
const POD_TYPE* start,
const POD_TYPE* end)
const
298 requires (same_as<ELEMENT_TYPE, byte> and is_standard_layout_v<POD_TYPE>)
300 WriteRaw (span{start, end});
302 [[deprecated (
"Since Stroika v3.0d5 use span overload of Write")]]
void Write (
const wchar_t* start,
const wchar_t* end)
const
303 requires (same_as<ELEMENT_TYPE, Characters::Character>)
305 this->
Write (span{start, end});
307 template <
typename POD_TYPE>
308 [[deprecated (
"Since Stroika v3.0d8 - use Write (as_bytes (span{&p, 1}));")]]
void WriteRaw (
const POD_TYPE& p)
const
309 requires (same_as<ELEMENT_TYPE, byte> and is_trivial_v<POD_TYPE> and not Memory::ISpan<POD_TYPE>)
311 this->
Write (as_bytes (span{&p, 1}));
313 template <
typename POD_TYPE,
size_t SPAN_LENGTH>
314 [[deprecated (
"Since Stroika v3.0d8 - use Write(as_bytes(p))")]]
void WriteRaw (span<POD_TYPE, SPAN_LENGTH> elts)
const
315 requires (same_as<ELEMENT_TYPE, byte> and is_trivial_v<POD_TYPE>)
317 this->
Write (as_bytes (elts));