AWS SDK for C++

AWS SDK for C++ Version 1.11.909

Loading...
Searching...
No Matches
ClientProtocol.h
1#pragma once
2
3#include <aws/core/utils/memory/AWSMemory.h>
4#include <aws/core/utils/memory/stl/AWSString.h>
5#include <aws/crt/Types.h>
6#include <smithy/Smithy_EXPORTS.h>
7#include <smithy/client/schema/Codec.h>
8#include <smithy/client/schema/OperationRequestContext.h>
9
10namespace smithy {
11namespace schema {
12
13class Schema;
14class SerializableStruct;
15class ShapeDeserializer;
16
17class SMITHY_API ClientProtocol {
18 public:
20
21 virtual ~ClientProtocol() = default;
22
23 virtual Aws::String GetProtocolId() const = 0;
24 virtual Aws::String GetContentType() const = 0;
25 virtual SerializerOutcome SerializeInput(const Schema& schema, const SerializableStruct& input) const = 0;
26 virtual Aws::UniquePtr<ShapeDeserializer> CreateOutputDeserializer(Aws::Crt::ByteCursor data) const = 0;
27
28 virtual SerializerOutcome SerializeRequest(const OperationRequestContext& operation, const Schema& inputSchema,
29 const SerializableStruct& input) const;
30
31 virtual void DeserializeResponse(const OperationRequestContext& operation, Aws::Crt::ByteCursor data,
32 SerializableStruct& output) const;
33};
34
35class SMITHY_API RestJsonProtocol final : public ClientProtocol {
36 public:
37 Aws::String GetProtocolId() const override;
38 Aws::String GetContentType() const override;
39 SerializerOutcome SerializeInput(const Schema& schema, const SerializableStruct& input) const override;
40 Aws::UniquePtr<ShapeDeserializer> CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override;
41
42 private:
43 JsonCodec m_codec;
44};
45
46class SMITHY_API AwsJson10Protocol final : public ClientProtocol {
47 public:
48 Aws::String GetProtocolId() const override;
49 Aws::String GetContentType() const override;
50 SerializerOutcome SerializeInput(const Schema& schema, const SerializableStruct& input) const override;
51 Aws::UniquePtr<ShapeDeserializer> CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override;
52
53 private:
54 JsonCodec m_codec;
55};
56
57class SMITHY_API AwsJson11Protocol final : public ClientProtocol {
58 public:
59 Aws::String GetProtocolId() const override;
60 Aws::String GetContentType() const override;
61 SerializerOutcome SerializeInput(const Schema& schema, const SerializableStruct& input) const override;
62 Aws::UniquePtr<ShapeDeserializer> CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override;
63
64 private:
65 JsonCodec m_codec;
66};
67
68class SMITHY_API RpcV2CborProtocol final : public ClientProtocol {
69 public:
70 Aws::String GetProtocolId() const override;
71 Aws::String GetContentType() const override;
72 SerializerOutcome SerializeInput(const Schema& schema, const SerializableStruct& input) const override;
73 Aws::UniquePtr<ShapeDeserializer> CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override;
74
75 private:
76 CborCodec m_codec;
77};
78
79class SMITHY_API RestXmlProtocol final : public ClientProtocol {
80 public:
81 Aws::String GetProtocolId() const override;
82 Aws::String GetContentType() const override;
83 SerializerOutcome SerializeInput(const Schema& schema, const SerializableStruct& input) const override;
84 Aws::UniquePtr<ShapeDeserializer> CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override;
85
86 private:
87 XmlCodec m_codec;
88};
89
90class SMITHY_API AwsQueryProtocol final : public ClientProtocol {
91 public:
92 Aws::String GetProtocolId() const override;
93 Aws::String GetContentType() const override;
94 SerializerOutcome SerializeInput(const Schema& schema, const SerializableStruct& input) const override;
95 Aws::UniquePtr<ShapeDeserializer> CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override;
97 const SerializableStruct& input) const override;
98 void DeserializeResponse(const OperationRequestContext& operation, Aws::Crt::ByteCursor data,
99 SerializableStruct& output) const override;
100};
101
102class SMITHY_API Ec2QueryProtocol final : public ClientProtocol {
103 public:
104 Aws::String GetProtocolId() const override;
105 Aws::String GetContentType() const override;
106 SerializerOutcome SerializeInput(const Schema& schema, const SerializableStruct& input) const override;
107 Aws::UniquePtr<ShapeDeserializer> CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override;
109 const SerializableStruct& input) const override;
110};
111
112} // namespace schema
113} // namespace smithy
Aws::UniquePtr< ShapeDeserializer > CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override
SerializerOutcome SerializeInput(const Schema &schema, const SerializableStruct &input) const override
Aws::String GetProtocolId() const override
Aws::String GetContentType() const override
Aws::UniquePtr< ShapeDeserializer > CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override
Aws::String GetProtocolId() const override
Aws::String GetContentType() const override
SerializerOutcome SerializeInput(const Schema &schema, const SerializableStruct &input) const override
Aws::String GetContentType() const override
Aws::String GetProtocolId() const override
SerializerOutcome SerializeInput(const Schema &schema, const SerializableStruct &input) const override
SerializerOutcome SerializeRequest(const OperationRequestContext &operation, const Schema &inputSchema, const SerializableStruct &input) const override
Aws::UniquePtr< ShapeDeserializer > CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override
void DeserializeResponse(const OperationRequestContext &operation, Aws::Crt::ByteCursor data, SerializableStruct &output) const override
virtual SerializerOutcome SerializeRequest(const OperationRequestContext &operation, const Schema &inputSchema, const SerializableStruct &input) const
virtual void DeserializeResponse(const OperationRequestContext &operation, Aws::Crt::ByteCursor data, SerializableStruct &output) const
virtual Aws::String GetContentType() const =0
virtual ~ClientProtocol()=default
virtual SerializerOutcome SerializeInput(const Schema &schema, const SerializableStruct &input) const =0
virtual Aws::UniquePtr< ShapeDeserializer > CreateOutputDeserializer(Aws::Crt::ByteCursor data) const =0
virtual Aws::String GetProtocolId() const =0
Aws::String GetProtocolId() const override
SerializerOutcome SerializeInput(const Schema &schema, const SerializableStruct &input) const override
SerializerOutcome SerializeRequest(const OperationRequestContext &operation, const Schema &inputSchema, const SerializableStruct &input) const override
Aws::UniquePtr< ShapeDeserializer > CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override
Aws::String GetContentType() const override
Aws::UniquePtr< ShapeDeserializer > CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override
Aws::String GetProtocolId() const override
SerializerOutcome SerializeInput(const Schema &schema, const SerializableStruct &input) const override
Aws::String GetContentType() const override
Aws::String GetContentType() const override
Aws::UniquePtr< ShapeDeserializer > CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override
SerializerOutcome SerializeInput(const Schema &schema, const SerializableStruct &input) const override
Aws::String GetProtocolId() const override
Aws::String GetProtocolId() const override
SerializerOutcome SerializeInput(const Schema &schema, const SerializableStruct &input) const override
Aws::UniquePtr< ShapeDeserializer > CreateOutputDeserializer(Aws::Crt::ByteCursor data) const override
Aws::String GetContentType() const override
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition AWSString.h:97
std::unique_ptr< T, D > UniquePtr
Definition AWSMemory.h:255