AWS SDK for C++

AWS SDK for C++ Version 1.11.847

Loading...
Searching...
No Matches
AWSErrorMarshaller.h
1
6#pragma once
7
8#include <aws/core/Core_EXPORTS.h>
9#include <aws/core/client/AWSError.h>
10#include <aws/core/client/CoreErrors.h>
11#include <aws/core/utils/memory/stl/AWSString.h>
12
13namespace Aws
14{
15 namespace Http
16 {
17 class HttpResponse;
18 enum class HttpResponseCode;
19 }
20
21 namespace Utils
22 {
23 namespace Xml
24 {
25 class XmlDocument;
26 }
27 namespace Json
28 {
29 class JsonValue;
30 }
31 namespace Cbor
32 {
33 class CborValue;
34 }
35 }
36
37 namespace Client
38 {
39 enum class CoreErrors;
40
41 template<typename ERROR_TYPE>
42 class AWSError;
43
47 class AWS_CORE_API AWSErrorMarshaller
48 {
49 public:
51
56 virtual AWSError<CoreErrors> Marshall(const Aws::Http::HttpResponse& response) const = 0;
60 virtual AWSError<CoreErrors> FindErrorByName(const char* exceptionName) const;
62
66 virtual AWSError<CoreErrors> BuildAWSError(const std::shared_ptr<Http::HttpResponse>&) const
67 {
68 return AWSError<CoreErrors>(CoreErrors::UNKNOWN, false);
69 }
70
74 virtual Aws::String ExtractRegion(const AWSError<CoreErrors>&) const { return {}; }
78 virtual Aws::String ExtractEndpoint(const AWSError<CoreErrors>&) const { return {}; }
79 protected:
80 virtual AWSError<CoreErrors> Marshall(const Aws::String& exceptionName, const Aws::String& message) const;
81 virtual void MarshallError(AWSError<CoreErrors>&, const Http::HttpResponse&) const {};
82 };
83
84 class AWS_CORE_API JsonErrorMarshaller : public AWSErrorMarshaller
85 {
86 using AWSErrorMarshaller::Marshall;
87 public:
93 virtual AWSError<CoreErrors> Marshall(const Aws::Http::HttpResponse& response) const override;
94
95 AWSError<CoreErrors> BuildAWSError(const std::shared_ptr<Http::HttpResponse>& httpResponse) const override;
96
97 protected:
100 };
101
103 protected:
105 };
106
107 class AWS_CORE_API XmlErrorMarshaller : public AWSErrorMarshaller {
108 using AWSErrorMarshaller::Marshall;
109
110 public:
116
117 AWSError<CoreErrors> BuildAWSError(const std::shared_ptr<Http::HttpResponse>& httpResponse) const override;
118
119 protected:
121 };
122
123 class AWS_CORE_API RpcV2ErrorMarshaller : public AWSErrorMarshaller {
124 using AWSErrorMarshaller::Marshall;
125
126 public:
132
133 AWSError<CoreErrors> BuildAWSError(const std::shared_ptr<Http::HttpResponse>& httpResponse) const override;
134
135 protected:
137 };
138
140 protected:
142 };
143
144 } // namespace Client
145} // namespace Aws
virtual AWSError< CoreErrors > FindErrorByName(const char *exceptionName) const
virtual AWSError< CoreErrors > BuildAWSError(const std::shared_ptr< Http::HttpResponse > &) const
virtual Aws::String ExtractEndpoint(const AWSError< CoreErrors > &) const
virtual AWSError< CoreErrors > Marshall(const Aws::Http::HttpResponse &response) const =0
virtual AWSError< CoreErrors > Marshall(const Aws::String &exceptionName, const Aws::String &message) const
virtual AWSError< CoreErrors > FindErrorByHttpResponseCode(Aws::Http::HttpResponseCode code) const
virtual Aws::String ExtractRegion(const AWSError< CoreErrors > &) const
virtual void MarshallError(AWSError< CoreErrors > &, const Http::HttpResponse &) const
AWSError< CoreErrors > BuildAWSError(const std::shared_ptr< Http::HttpResponse > &httpResponse) const override
const Aws::Utils::Json::JsonValue & GetJsonPayloadFromError(const AWSError< CoreErrors > &) const
virtual AWSError< CoreErrors > Marshall(const Aws::Http::HttpResponse &response) const override
static Aws::Utils::Json::JsonValue GetJsonPayloadHttpResponse(const Http::HttpResponse &httpResponse)
void MarshallError(AWSError< CoreErrors > &, const Http::HttpResponse &) const override
static Aws::Utils::Cbor::CborValue GetCborPayloadHttpResponse(const Http::HttpResponse &httpResponse)
AWSError< CoreErrors > BuildAWSError(const std::shared_ptr< Http::HttpResponse > &httpResponse) const override
AWSError< CoreErrors > Marshall(const Aws::Http::HttpResponse &response) const override
void MarshallError(AWSError< CoreErrors > &, const Http::HttpResponse &) const override
AWSError< CoreErrors > BuildAWSError(const std::shared_ptr< Http::HttpResponse > &httpResponse) const override
AWSError< CoreErrors > Marshall(const Aws::Http::HttpResponse &response) const override
const Aws::Utils::Xml::XmlDocument & GetXmlPayloadFromError(const AWSError< CoreErrors > &) const
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition AWSString.h:97