4#ifndef _Stroika_Foundation_Streams_InputOutputStream_h_
5#define _Stroika_Foundation_Streams_InputOutputStream_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
19namespace Stroika::Foundation::Streams::InputOutputStream {
21 template <
typename ELEMENT_TYPE>
24 template <
typename ELEMENT_TYPE>
63 template <
typename ELEMENT_TYPE>
77 Ptr (
const Ptr&) =
default;
79 Ptr (
const shared_ptr<IRep<ELEMENT_TYPE>>& rep);
84 nonvirtual
Ptr& operator= (
const Ptr&) =
default;
85 nonvirtual
Ptr& operator= (
Ptr&&) =
default;
99 nonvirtual
void Close ()
const;
168 nonvirtual shared_ptr<IRep<ELEMENT_TYPE>>
GetSharedRep ()
const;
180 nonvirtual IRep<ELEMENT_TYPE>&
GetRepRWRef ()
const;
186 template <
typename ELEMENT_TYPE>
189 using ElementType = ELEMENT_TYPE;
193 IRep (
const IRep&) =
delete;
196 nonvirtual IRep& operator= (
const IRep&) =
delete;
206#include "InputOutputStream.inl"
int64_t SignedSeekOffsetType
Abstract interface for output stream object. Don't call directly (use Ptr usually) - but use directly...
OutputStream<>::Ptr is Smart pointer to a stream-based sink of data.
nonvirtual void reset() noexcept