AWS SDK for C++

AWS SDK for C++ Version 1.11.887

Loading...
Searching...
No Matches
ShapeSerializer.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 <smithy/Smithy_EXPORTS.h>
7#include <smithy/client/schema/Schema.h>
8
9#include <cstdint>
10#include <functional>
11
12namespace smithy {
13namespace schema {
14
15class SerializableStruct;
16class MapSerializer;
17
18// Push-based serializer: the model drives serialization and the serializer owns
19// all wire-format structure. Aggregates hand control back through a consumer.
20class SMITHY_API ShapeSerializer {
21 public:
22 virtual ~ShapeSerializer() = default;
23
24 virtual void WriteStruct(const Schema& schema, const SerializableStruct& value) = 0;
25 virtual void WriteList(const Schema& schema, size_t size, const std::function<void(ShapeSerializer&)>& consumer) = 0;
26 virtual void WriteMap(const Schema& schema, size_t size, const std::function<void(MapSerializer&)>& consumer) = 0;
27
28 virtual void WriteBoolean(const Schema& schema, bool value) = 0;
29 virtual void WriteInteger(const Schema& schema, int value) = 0;
30 virtual void WriteLong(const Schema& schema, int64_t value) = 0;
31 virtual void WriteFloat(const Schema& schema, float value) = 0;
32 virtual void WriteDouble(const Schema& schema, double value) = 0;
33 virtual void WriteString(const Schema& schema, const Aws::String& value) = 0;
34 virtual void WriteTimestamp(const Schema& schema, const Aws::Utils::DateTime& value) = 0;
35 virtual void WriteBlob(const Schema& schema, const Aws::Utils::ByteBuffer& value) = 0;
36 virtual void WriteEnum(const Schema& schema, int value) = 0;
37 virtual void WriteNull(const Schema& schema) = 0;
38};
39
40} // namespace schema
41} // namespace smithy
virtual void WriteFloat(const Schema &schema, float value)=0
virtual void WriteBoolean(const Schema &schema, bool value)=0
virtual void WriteBlob(const Schema &schema, const Aws::Utils::ByteBuffer &value)=0
virtual void WriteInteger(const Schema &schema, int value)=0
virtual void WriteEnum(const Schema &schema, int value)=0
virtual void WriteStruct(const Schema &schema, const SerializableStruct &value)=0
virtual void WriteString(const Schema &schema, const Aws::String &value)=0
virtual void WriteLong(const Schema &schema, int64_t value)=0
virtual void WriteList(const Schema &schema, size_t size, const std::function< void(ShapeSerializer &)> &consumer)=0
virtual void WriteMap(const Schema &schema, size_t size, const std::function< void(MapSerializer &)> &consumer)=0
virtual ~ShapeSerializer()=default
virtual void WriteDouble(const Schema &schema, double value)=0
virtual void WriteTimestamp(const Schema &schema, const Aws::Utils::DateTime &value)=0
virtual void WriteNull(const Schema &schema)=0
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition AWSString.h:97