AWS SDK for C++

AWS SDK for C++ Version 1.11.909

Loading...
Searching...
No Matches
ShapeDeserializer.h
1#pragma once
2
3#include <aws/core/utils/Array.h>
4#include <aws/core/utils/DateTime.h>
5#include <aws/core/utils/memory/stl/AWSString.h>
6#include <aws/crt/Optional.h>
7#include <smithy/Smithy_EXPORTS.h>
8#include <smithy/client/schema/Schema.h>
9
10#include <cstdint>
11#include <functional>
12
13namespace smithy {
14namespace schema {
15
16class SMITHY_API ShapeDeserializer {
17 public:
18 virtual ~ShapeDeserializer() = default;
19
20 using StructMemberConsumer = std::function<void(const Schema& memberSchema, ShapeDeserializer& deserializer)>;
21
22 using ListElementConsumer = std::function<void(ShapeDeserializer& deserializer)>;
23
24 using MapEntryConsumer = std::function<void(const Aws::String& key, ShapeDeserializer& deserializer)>;
25
26 virtual void ReadStruct(const Schema& schema, const StructMemberConsumer& consumer) = 0;
27 virtual void ReadList(const Schema& schema, const ListElementConsumer& consumer) = 0;
28 virtual void ReadMap(const Schema& schema, const MapEntryConsumer& consumer) = 0;
29
30 virtual Aws::Crt::Optional<bool> ReadBoolean(const Schema& schema) = 0;
31 virtual Aws::Crt::Optional<int> ReadInteger(const Schema& schema) = 0;
32 virtual Aws::Crt::Optional<int64_t> ReadLong(const Schema& schema) = 0;
33 virtual Aws::Crt::Optional<float> ReadFloat(const Schema& schema) = 0;
34 virtual Aws::Crt::Optional<double> ReadDouble(const Schema& schema) = 0;
35 virtual Aws::Crt::Optional<Aws::String> ReadString(const Schema& schema) = 0;
36 virtual Aws::Crt::Optional<Aws::Utils::DateTime> ReadTimestamp(const Schema& schema) = 0;
37 virtual Aws::Crt::Optional<Aws::Utils::ByteBuffer> ReadBlob(const Schema& schema) = 0;
38
39 virtual bool IsNull() = 0;
40};
41
42} // namespace schema
43} // namespace smithy
virtual void ReadMap(const Schema &schema, const MapEntryConsumer &consumer)=0
virtual Aws::Crt::Optional< float > ReadFloat(const Schema &schema)=0
virtual void ReadStruct(const Schema &schema, const StructMemberConsumer &consumer)=0
std::function< void(const Aws::String &key, ShapeDeserializer &deserializer)> MapEntryConsumer
virtual Aws::Crt::Optional< int > ReadInteger(const Schema &schema)=0
std::function< void(const Schema &memberSchema, ShapeDeserializer &deserializer)> StructMemberConsumer
std::function< void(ShapeDeserializer &deserializer)> ListElementConsumer
virtual void ReadList(const Schema &schema, const ListElementConsumer &consumer)=0
virtual Aws::Crt::Optional< bool > ReadBoolean(const Schema &schema)=0
virtual Aws::Crt::Optional< Aws::Utils::DateTime > ReadTimestamp(const Schema &schema)=0
virtual Aws::Crt::Optional< Aws::String > ReadString(const Schema &schema)=0
virtual Aws::Crt::Optional< double > ReadDouble(const Schema &schema)=0
virtual ~ShapeDeserializer()=default
virtual Aws::Crt::Optional< Aws::Utils::ByteBuffer > ReadBlob(const Schema &schema)=0
virtual Aws::Crt::Optional< int64_t > ReadLong(const Schema &schema)=0
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition AWSString.h:97