Skip to content

Commit efe0e60

Browse files
committed
Adding JsonShapeDeserializer, fixing serializer double precision, supporting TimestampFormatTrait
1 parent c14a561 commit efe0e60

9 files changed

Lines changed: 1970 additions & 5 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#pragma once
2+
3+
#include <aws/core/utils/memory/AWSMemory.h>
4+
#include <smithy/Smithy_EXPORTS.h>
5+
#include <smithy/client/schema/ShapeDeserializer.h>
6+
7+
namespace smithy {
8+
namespace schema {
9+
10+
class SMITHY_API JsonShapeDeserializer final : public ShapeDeserializer {
11+
public:
12+
JsonShapeDeserializer(const char* data, size_t length);
13+
~JsonShapeDeserializer();
14+
15+
Aws::Crt::Optional<bool> ReadBoolean() override;
16+
Aws::Crt::Optional<int> ReadInteger() override;
17+
Aws::Crt::Optional<int64_t> ReadLong() override;
18+
Aws::Crt::Optional<float> ReadFloat() override;
19+
Aws::Crt::Optional<double> ReadDouble() override;
20+
Aws::Crt::Optional<Aws::String> ReadString() override;
21+
Aws::Crt::Optional<Aws::Utils::DateTime> ReadTimestamp() override;
22+
Aws::Crt::Optional<Aws::Utils::ByteBuffer> ReadBlob() override;
23+
Aws::Crt::Optional<int> ReadEnum() override;
24+
25+
size_t BeginStruct() override;
26+
void EndStruct() override;
27+
28+
size_t BeginList() override;
29+
void EndList() override;
30+
31+
size_t BeginMap() override;
32+
void EndMap() override;
33+
34+
Aws::Crt::Optional<Aws::String> ReadKey() override;
35+
bool IsBreak() override;
36+
bool IsNull() override;
37+
void ReadNull() override;
38+
void SkipValue() override;
39+
40+
private:
41+
class Impl;
42+
Aws::UniquePtr<Impl> m_impl;
43+
};
44+
45+
} // namespace schema
46+
} // namespace smithy

src/aws-cpp-sdk-core/include/smithy/client/schema/JsonWriteUtils.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace Aws {
55
namespace Schema {
66

77
void WriteQuotedJsonString(Aws::String& buf, const Aws::String& value);
8+
void WriteJsonDouble(Aws::String& buf, double value);
89

910
} // namespace Schema
1011
} // namespace Aws

0 commit comments

Comments
 (0)