Stroika Library 3.0d25
 
Loading...
Searching...
No Matches
Variant/Writer.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2026. All rights reserved
3 */
4
5namespace Stroika::Foundation::DataExchange::Variant {
6
7 /*
8 ********************************************************************************
9 ***************************** DataExchange::Writer *****************************
10 ********************************************************************************
11 */
12 inline Writer::Writer (const shared_ptr<const _IRep>& rep)
13 : fRep_{rep}
14 {
15 RequireNotNull (rep);
16 }
17 inline optional<filesystem::path> Writer::GetDefaultFileSuffix () const
18 {
19 return fRep_->GetDefaultFileSuffix ();
20 }
21 inline void Writer::Write (const VariantValue& v, const Streams::OutputStream::Ptr<byte>& out) const
22 {
23 fRep_->Write (v, out);
24 }
26 {
27 fRep_->Write (v, out);
28 }
29 inline void Variant::Writer::Write (const VariantValue& v, ostream& out) const
30 {
31 Write (v, _WrapBinaryOutput (out));
32 }
33 inline void Variant::Writer::Write (const VariantValue& v, wostream& out) const
34 {
35 Write (v, _WrapTextOutput (out));
36 }
37 inline const Writer::_IRep& Writer::_ConstGetRep () const
38 {
39 AssertNotNull (fRep_);
40 return *fRep_;
41 }
50
51}
#define AssertNotNull(p)
Definition Assertions.h:336
#define RequireNotNull(p)
Definition Assertions.h:350
static Streams::OutputStream::Ptr< Characters::Character > _WrapTextOutput(const Streams::OutputStream::Ptr< Characters::Character > &out)
nonvirtual void Write(const VariantValue &v, const Streams::OutputStream::Ptr< byte > &out) const
static Streams::OutputStream::Ptr< byte > _WrapBinaryOutput(const Streams::OutputStream::Ptr< byte > &out)
Simple variant-value (case variant union) object, with (variant) basic types analogous to a value in ...
OutputStream<>::Ptr is Smart pointer to a stream-based sink of data.