Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Fault.cpp
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#include "Stroika/Foundation/StroikaPreComp.h"
5
6#include "Stroika/Foundation/DataExchange/StructuredStreamEvents/ObjectReader.h"
8
9#include "Fault.h"
10
11using namespace Stroika::Foundation;
14using namespace Stroika::Foundation::DataExchange::StructuredStreamEvents;
15using namespace Stroika::Foundation::IO;
17using namespace Stroika::Foundation::IO::Network::SOAP;
18
19/*
20 ********************************************************************************
21 ********************** Network::SOAP::Deserialize_Fault ************************
22 ********************************************************************************
23 */
24optional<Fault> SOAP::Deserialize_Fault (const Streams::InputStream::Ptr<byte>& from)
25{
26#if qStroika_Foundation_DataExchange_XML_SupportParsing
27 using namespace ObjectReader;
28 static const Registry kSOAPTypeMapper_ = [] () -> Registry {
29 // using namespace DataExchange::StructuredStreamEvents;
30 Registry mapper;
31 mapper.AddCommonType<String> ();
32 mapper.AddCommonReader_Class<Fault> ({
33 {Name{"faultcode"sv}, &Fault::faultcode},
34 {Name{"faultstring"sv}, &Fault::faultstring},
35 });
36 return mapper;
37 }();
38 Fault result;
39 try {
40 IConsumerDelegateToContext ctx{kSOAPTypeMapper_, make_shared<ReadDownToReader> (kSOAPTypeMapper_.MakeContextReader (&result), Name{"Fault"sv})};
41#if qStroika_Foundation_DataExchange_StructuredStreamEvents_SupportTracing && USE_NOISY_TRACE_IN_THIS_MODULE_
42 ctx.fContext.fTraceThisReader = true;
43#endif
44 XML::SAXParse (from, &ctx);
45
46 return result;
47 }
48 catch (...) {
49 // not a bug, but a feature...
50 return nullopt;
51 }
52#else
53 return nullopt;
54#endif
55}
String is like std::u32string, except it is much easier to use, often much more space efficient,...
Definition String.h:201
InputStream<>::Ptr is Smart pointer (with abstract Rep) class defining the interface to reading from ...