Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Foundation/DataExchange/Compression/Common.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4
6
7 /*
8 ********************************************************************************
9 ************************ DataExchange::Compression::Ptr ************************
10 ********************************************************************************
11 */
12 inline Ptr::Ptr (const shared_ptr<IRep>& s)
13 : shared_ptr<IRep>{s}
14 {
15 }
16 inline Ptr::Ptr (shared_ptr<IRep>&& s) noexcept
17 : shared_ptr<IRep>{move (s)}
18 {
19 }
20 inline InputStream::Ptr<byte> Ptr::Transform (const InputStream::Ptr<byte>& src)
21 {
22 RequireNotNull (get ());
23 return get ()->Transform (src);
24 }
25 inline BLOB Ptr::Transform (const BLOB& src)
26 {
27 return Transform (src.As<InputStream::Ptr<byte>> ()).ReadAll ();
28 }
29 inline auto Ptr::GetStats () const -> optional<Stats>
30 {
31 RequireNotNull (get ());
32 return get ()->GetStats ();
33 }
34
35}
#define RequireNotNull(p)
Definition Assertions.h:347
constexpr auto Transform(const optional< T > &o, F &&f)
Definition Optional.h:241