Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
ExternallyOwnedMemoryInputStream.h
Go to the documentation of this file.
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#ifndef _Stroika_Foundation_Streams_ExternallyOwnedMemoryInputStream_h_
5#define _Stroika_Foundation_Streams_ExternallyOwnedMemoryInputStream_h_ 1
6
7#include "Stroika/Foundation/StroikaPreComp.h"
8
9#include <mutex>
10#include <vector>
11
12#include "Stroika/Foundation/Common/Common.h"
14
16
17/**
18 * \file
19 */
20
21namespace Stroika::Foundation::Streams::ExternallyOwnedMemoryInputStream {
22
23 _DeprecatedFile_ ("DEPRECATED FILE DEPRECATED SINCE STROIKA v3.0d5 - use ExternallyOwnedSpanInputStream");
24 using InputStream::Ptr;
25
26 template <typename ELEMENT_TYPE>
27 [[deprecated ("Since Stroika v3.0d5 use ExternallyOwnedSpanInputStream")]] Ptr<ELEMENT_TYPE> New (const ELEMENT_TYPE* start, const ELEMENT_TYPE* end)
28 {
29 return ExternallyOwnedSpanInputStream::New<ELEMENT_TYPE> (span{start, end});
30 }
31 template <typename ELEMENT_TYPE, random_access_iterator ELEMENT_ITERATOR>
32 [[deprecated ("Since Stroika v3.0d5 use ExternallyOwnedSpanInputStream")]] Ptr<ELEMENT_TYPE> New (ELEMENT_ITERATOR start, ELEMENT_ITERATOR end)
33 requires same_as<typename ELEMENT_ITERATOR::value_type, ELEMENT_TYPE> or
34 (same_as<ELEMENT_TYPE, byte> and same_as<typename ELEMENT_ITERATOR::value_type, char>)
35 {
36 return ExternallyOwnedSpanInputStream::New<ELEMENT_TYPE> (span{start, end});
37 }
38 template <typename ELEMENT_TYPE>
39 [[deprecated ("Since Stroika v3.0d5 use ExternallyOwnedSpanInputStream")]] Ptr<ELEMENT_TYPE>
40 New (Execution::InternallySynchronized internallySynchronized, const ELEMENT_TYPE* start, const ELEMENT_TYPE* end)
41 {
42 return ExternallyOwnedSpanInputStream::New<ELEMENT_TYPE> (span{start, end - start});
43 }
44 template <typename ELEMENT_TYPE, random_access_iterator ELEMENT_ITERATOR>
45 [[deprecated ("Since Stroika v3.0d5 use ExternallyOwnedSpanInputStream")]] Ptr<ELEMENT_TYPE>
46 New (Execution::InternallySynchronized internallySynchronized, ELEMENT_ITERATOR start, ELEMENT_ITERATOR end)
47 requires same_as<typename ELEMENT_ITERATOR::value_type, ELEMENT_TYPE> or
48 (same_as<ELEMENT_TYPE, byte> and same_as<typename ELEMENT_ITERATOR::value_type, char>)
49 {
50 return ExternallyOwnedSpanInputStream::New<ELEMENT_TYPE> (span{start, end - start});
51 }
52 template <typename ELEMENT_TYPE>
53 [[deprecated ("Since Stroika v3.0d5 use ExternallyOwnedSpanInputStream")]] Ptr<ELEMENT_TYPE> New (const uint8_t* start, const uint8_t* end)
54 requires same_as<ELEMENT_TYPE, byte>
55 {
56 return ExternallyOwnedSpanInputStream::New<ELEMENT_TYPE> (span{start, end});
57 }
58
59}
60
61/*
62 ********************************************************************************
63 ***************************** Implementation Details ***************************
64 ********************************************************************************
65 */
66
67#endif /*_Stroika_Foundation_Streams_ExternallyOwnedMemoryInputStream_h_*/