Stroika Library 3.0d23x
 
Loading...
Searching...
No Matches
Fault.cpp
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2026. All rights reserved
3 */
4#include "Stroika/Foundation/StroikaPreComp.h"
5
6#include "Stroika/Foundation/DataExchange/StructuredStreamEvents/ObjectReader.h"
9
10#include "Fault.h"
11
12using namespace Stroika::Foundation;
15using namespace Stroika::Foundation::DataExchange::StructuredStreamEvents;
16using namespace Stroika::Foundation::IO;
18using namespace Stroika::Foundation::IO::Network::SOAP;
19
20/*
21 ********************************************************************************
22 ********************** Network::SOAP::Deserialize_Fault ************************
23 ********************************************************************************
24 */
25optional<Fault> SOAP::Deserialize_Fault (const Streams::InputStream::Ptr<byte>& from)
26{
27#if qStroika_Foundation_DataExchange_XML_SupportParsing
28 using namespace ObjectReader;
29 static const Registry kSOAPTypeMapper_ = [] () -> Registry {
30 // using namespace DataExchange::StructuredStreamEvents;
31 Registry mapper;
32 mapper.AddCommonType<String> ();
33 mapper.AddCommonReader_Class<Fault> ({
34 {Name{"faultcode"sv}, &Fault::faultcode},
35 {Name{"faultstring"sv}, &Fault::faultstring},
36 });
37 return mapper;
38 }();
39 Fault result;
40 try {
41 IConsumerDelegateToContext ctx{kSOAPTypeMapper_,
42 Memory::MakeSharedPtr<ReadDownToReader> (kSOAPTypeMapper_.MakeContextReader (&result), Name{"Fault"sv})};
43#if qStroika_Foundation_DataExchange_StructuredStreamEvents_SupportTracing && USE_NOISY_TRACE_IN_THIS_MODULE_
44 ctx.fContext.fTraceThisReader = true;
45#endif
46 XML::SAXParse (from, &ctx);
47
48 return result;
49 }
50 catch (...) {
51 // not a bug, but a feature...
52 return nullopt;
53 }
54#else
55 return nullopt;
56#endif
57}
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 ...