Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
BinaryToText.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#include "InternallySynchronizedInputStream.h"
5
7
8 /*
9 ********************************************************************************
10 **************************** BinaryToText::Reader::New *******************************
11 ********************************************************************************
12 */
13 inline auto New (const InputStream::Ptr<Character>& src) -> InputStream::Ptr<Character>
14 {
15 return src;
16 }
17 template <typename... ARGS>
18 inline InputStream::Ptr<Character> New (Execution::InternallySynchronized internallySynchronized, ARGS... args)
19 {
20 switch (internallySynchronized) {
21 case Execution::InternallySynchronized::eNotKnownInternallySynchronized:
22 return New (forward<ARGS...> (args...));
23 case Execution::eInternallySynchronized:
24 // @todo could explicitly specialize more cases and handle more efficiently, but using the REP overload of InternallySynchronizedInputStream
25 return InternallySynchronizedInputStream::New ({}, New (forward<ARGS...> (args...)));
26 }
27 }
28
29}
BinaryToText::Reader::Ptr is an InputStream::Ptr<Character>, usually constructed wrapping some binary...
Ptr New(const InputStream::Ptr< byte > &src, optional< AutomaticCodeCvtFlags > codeCvtFlags={}, optional< SeekableFlag > seekable={}, ReadAhead readAhead=eReadAheadAllowed)
Create an InputStream::Ptr<Character> from the arguments (usually binary source) - which can be used ...