4#ifndef _Stroika_Foundation_Streams_InternallySynchronizedOutputStream_h_
5#define _Stroika_Foundation_Streams_InternallySynchronizedOutputStream_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
19namespace Stroika::Foundation::Streams::InternallySynchronizedOutputStream {
21 using OutputStream::Ptr;
25 struct DefaultOptions {
29 using MutexType = mutex;
42 template <
typename BASE_REP_TYPE,
typename OPTIONS = DefaultOptions,
typename... ARGS>
43 Ptr<typename BASE_REP_TYPE::ElementType> New (
const OPTIONS& o = {}, ARGS&&... args);
44 template <
typename ELEMENT_TYPE,
typename OPTIONS = DefaultOptions>
45 Ptr<ELEMENT_TYPE> New (
const OPTIONS& o,
const OutputStream::Ptr<ELEMENT_TYPE>& stream2Wrap);
54#include "InternallySynchronizedOutputStream.inl"