Skip to content

Commit f6dbff1

Browse files
committed
Use std::optional if available.
Currently, SDK requires C++11 minimum. So, boost::optional type is used for optional values. For C++17 and above more convenient is to use std::optional instead. This PR makes the optional type used configurable. Suppress Linter complains. Relates-To: NLAM-23 Signed-off-by: sopov <ext-alexander.sopov@here.com>
1 parent f13d510 commit f6dbff1

9 files changed

Lines changed: 123 additions & 65 deletions

File tree

olp-cpp-sdk-dataservice-read/src/generated/parser/CatalogParser.cpp

Lines changed: 42 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -23,44 +23,56 @@
2323

2424
namespace olp {
2525
namespace parser {
26-
using namespace olp::dataservice::read;
27-
28-
void from_json(const rapidjson::Value& value, model::Coverage& x) {
26+
using dataservice::read::model::Catalog;
27+
using dataservice::read::model::Coverage;
28+
using dataservice::read::model::Creator;
29+
using dataservice::read::model::Encryption;
30+
using dataservice::read::model::IndexDefinition;
31+
using dataservice::read::model::IndexProperties;
32+
using dataservice::read::model::Layer;
33+
using dataservice::read::model::Notifications;
34+
using dataservice::read::model::Owner;
35+
using dataservice::read::model::Partitioning;
36+
using dataservice::read::model::Schema;
37+
using dataservice::read::model::StreamProperties;
38+
using dataservice::read::model::Volume;
39+
40+
void from_json(const rapidjson::Value& value, Coverage& x) {
2941
x.SetAdminAreas(parse<std::vector<std::string>>(value, "adminAreas"));
3042
}
3143

32-
void from_json(const rapidjson::Value& value, model::IndexDefinition& x) {
44+
void from_json(const rapidjson::Value& value, IndexDefinition& x) {
3345
x.SetName(parse<std::string>(value, "name"));
3446
x.SetType(parse<std::string>(value, "type"));
3547
x.SetDuration(parse<int64_t>(value, "duration"));
3648
x.SetZoomLevel(parse<int64_t>(value, "zoomLevel"));
3749
}
3850

39-
void from_json(const rapidjson::Value& value, model::IndexProperties& x) {
51+
void from_json(const rapidjson::Value& value, IndexProperties& x) {
4052
x.SetTtl(parse<std::string>(value, "ttl"));
4153
x.SetIndexDefinitions(
42-
parse<std::vector<model::IndexDefinition>>(value, "indexDefinitions"));
54+
parse<std::vector<IndexDefinition>>(value, "indexDefinitions"));
4355
}
4456

45-
void from_json(const rapidjson::Value& value, model::Creator& x) {
57+
void from_json(const rapidjson::Value& value, Creator& x) {
4658
x.SetId(parse<std::string>(value, "id"));
4759
}
4860

49-
void from_json(const rapidjson::Value& value, model::Owner& x) {
50-
x.SetCreator(parse<model::Creator>(value, "creator"));
51-
x.SetOrganisation(parse<model::Creator>(value, "organisation"));
61+
void from_json(const rapidjson::Value& value, Owner& x) {
62+
x.SetCreator(parse<Creator>(value, "creator"));
63+
x.SetOrganisation(parse<Creator>(value, "organisation"));
5264
}
5365

54-
void from_json(const rapidjson::Value& value, model::Partitioning& x) {
66+
void from_json(const rapidjson::Value& value, Partitioning& x) {
5567
x.SetScheme(parse<std::string>(value, "scheme"));
5668
x.SetTileLevels(parse<std::vector<int64_t>>(value, "tileLevels"));
5769
}
5870

59-
void from_json(const rapidjson::Value& value, model::Schema& x) {
71+
void from_json(const rapidjson::Value& value, Schema& x) {
6072
x.SetHrn(parse<std::string>(value, "hrn"));
6173
}
6274

63-
void from_json(const rapidjson::Value& value, model::StreamProperties& x) {
75+
void from_json(const rapidjson::Value& value, StreamProperties& x) {
6476
// Parsing these as double even though OepnAPI sepcs says int64 because
6577
// Backend returns the value in decimal format (e.g. 1.0) and this triggers an
6678
// assert in RapidJSON when parsing.
@@ -70,57 +82,56 @@ void from_json(const rapidjson::Value& value, model::StreamProperties& x) {
7082
static_cast<int64_t>(parse<double>(value, "dataOutThroughputMbps")));
7183
}
7284

73-
void from_json(const rapidjson::Value& value, model::Encryption& x) {
85+
void from_json(const rapidjson::Value& value, Encryption& x) {
7486
x.SetAlgorithm(parse<std::string>(value, "algorithm"));
7587
}
7688

77-
void from_json(const rapidjson::Value& value, model::Volume& x) {
89+
void from_json(const rapidjson::Value& value, Volume& x) {
7890
x.SetVolumeType(parse<std::string>(value, "volumeType"));
7991
x.SetMaxMemoryPolicy(parse<std::string>(value, "maxMemoryPolicy"));
8092
x.SetPackageType(parse<std::string>(value, "packageType"));
81-
x.SetEncryption(parse<model::Encryption>(value, "encryption"));
93+
x.SetEncryption(parse<Encryption>(value, "encryption"));
8294
}
8395

84-
void from_json(const rapidjson::Value& value, model::Layer& x) {
96+
void from_json(const rapidjson::Value& value, Layer& x) {
8597
x.SetId(parse<std::string>(value, "id"));
8698
x.SetName(parse<std::string>(value, "name"));
8799
x.SetSummary(parse<std::string>(value, "summary"));
88100
x.SetDescription(parse<std::string>(value, "description"));
89-
x.SetOwner(parse<model::Owner>(value, "owner"));
90-
x.SetCoverage(parse<model::Coverage>(value, "coverage"));
91-
x.SetSchema(parse<model::Schema>(value, "schema"));
101+
x.SetOwner(parse<Owner>(value, "owner"));
102+
x.SetCoverage(parse<Coverage>(value, "coverage"));
103+
x.SetSchema(parse<Schema>(value, "schema"));
92104
x.SetContentType(parse<std::string>(value, "contentType"));
93105
x.SetContentEncoding(parse<std::string>(value, "contentEncoding"));
94-
x.SetPartitioning(parse<model::Partitioning>(value, "partitioning"));
106+
x.SetPartitioning(parse<Partitioning>(value, "partitioning"));
95107
x.SetLayerType(parse<std::string>(value, "layerType"));
96108
x.SetDigest(parse<std::string>(value, "digest"));
97109
x.SetTags(parse<std::vector<std::string>>(value, "tags"));
98110
x.SetBillingTags(parse<std::vector<std::string>>(value, "billingTags"));
99111
x.SetTtl(parse<olp::porting::optional<int64_t>>(value, "ttl"));
100-
x.SetIndexProperties(parse<model::IndexProperties>(value, "indexProperties"));
101-
x.SetStreamProperties(
102-
parse<model::StreamProperties>(value, "streamProperties"));
103-
x.SetVolume(parse<model::Volume>(value, "volume"));
112+
x.SetIndexProperties(parse<IndexProperties>(value, "indexProperties"));
113+
x.SetStreamProperties(parse<StreamProperties>(value, "streamProperties"));
114+
x.SetVolume(parse<Volume>(value, "volume"));
104115
}
105116

106-
void from_json(const rapidjson::Value& value, model::Notifications& x) {
117+
void from_json(const rapidjson::Value& value, Notifications& x) {
107118
x.SetEnabled(parse<bool>(value, "enabled"));
108119
}
109120

110-
void from_json(const rapidjson::Value& value, model::Catalog& x) {
121+
void from_json(const rapidjson::Value& value, Catalog& x) {
111122
x.SetId(parse<std::string>(value, "id"));
112123
x.SetHrn(parse<std::string>(value, "hrn"));
113124
x.SetName(parse<std::string>(value, "name"));
114125
x.SetSummary(parse<std::string>(value, "summary"));
115126
x.SetDescription(parse<std::string>(value, "description"));
116-
x.SetCoverage(parse<model::Coverage>(value, "coverage"));
117-
x.SetOwner(parse<model::Owner>(value, "owner"));
127+
x.SetCoverage(parse<Coverage>(value, "coverage"));
128+
x.SetOwner(parse<Owner>(value, "owner"));
118129
x.SetTags(parse<std::vector<std::string>>(value, "tags"));
119130
x.SetBillingTags(parse<std::vector<std::string>>(value, "billingTags"));
120131
x.SetCreated(parse<std::string>(value, "created"));
121-
x.SetLayers(parse<std::vector<model::Layer>>(value, "layers"));
132+
x.SetLayers(parse<std::vector<Layer>>(value, "layers"));
122133
x.SetVersion(parse<int64_t>(value, "version"));
123-
x.SetNotifications(parse<model::Notifications>(value, "notifications"));
134+
x.SetNotifications(parse<Notifications>(value, "notifications"));
124135
}
125136

126137
} // namespace parser

olp-cpp-sdk-dataservice-read/src/generated/parser/IndexParser.cpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,18 @@
2323

2424
namespace olp {
2525
namespace parser {
26-
using namespace olp::dataservice::read;
26+
using dataservice::read::model::Index;
27+
using dataservice::read::model::ParentQuad;
28+
using dataservice::read::model::SubQuad;
2729

28-
void from_json(const rapidjson::Value& value,
29-
std::shared_ptr<model::SubQuad>& x) {
30-
auto quad = std::make_shared<model::SubQuad>();
30+
void from_json(const rapidjson::Value& value, std::shared_ptr<SubQuad>& x) {
31+
auto quad = std::make_shared<SubQuad>();
3132

3233
quad->SetAdditionalMetadata(
3334
parse<olp::porting::optional<std::string>>(value, "additionalMetadata"));
3435

35-
quad->SetChecksum(parse<olp::porting::optional<std::string>>(value, "checksum"));
36+
quad->SetChecksum(
37+
parse<olp::porting::optional<std::string>>(value, "checksum"));
3638

3739
quad->SetCompressedDataSize(
3840
parse<olp::porting::optional<int64_t>>(value, "compressedDataSize"));
@@ -47,14 +49,14 @@ void from_json(const rapidjson::Value& value,
4749
x.swap(quad);
4850
}
4951

50-
void from_json(const rapidjson::Value& value,
51-
std::shared_ptr<model::ParentQuad>& x) {
52-
auto quad = std::make_shared<model::ParentQuad>();
52+
void from_json(const rapidjson::Value& value, std::shared_ptr<ParentQuad>& x) {
53+
auto quad = std::make_shared<ParentQuad>();
5354

5455
quad->SetAdditionalMetadata(
5556
parse<olp::porting::optional<std::string>>(value, "additionalMetadata"));
5657

57-
quad->SetChecksum(parse<olp::porting::optional<std::string>>(value, "checksum"));
58+
quad->SetChecksum(
59+
parse<olp::porting::optional<std::string>>(value, "checksum"));
5860

5961
quad->SetCompressedDataSize(
6062
parse<olp::porting::optional<int64_t>>(value, "compressedDataSize"));
@@ -69,11 +71,11 @@ void from_json(const rapidjson::Value& value,
6971
x.swap(quad);
7072
}
7173

72-
void from_json(const rapidjson::Value& value, model::Index& x) {
73-
x.SetParentQuads(parse<std::vector<std::shared_ptr<model::ParentQuad>>>(
74-
value, "parentQuads"));
74+
void from_json(const rapidjson::Value& value, Index& x) {
75+
x.SetParentQuads(
76+
parse<std::vector<std::shared_ptr<ParentQuad>>>(value, "parentQuads"));
7577
x.SetSubQuads(
76-
parse<std::vector<std::shared_ptr<model::SubQuad>>>(value, "subQuads"));
78+
parse<std::vector<std::shared_ptr<SubQuad>>>(value, "subQuads"));
7779
}
7880

7981
} // namespace parser

olp-cpp-sdk-dataservice-read/src/generated/parser/MessagesParser.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,30 @@
2626

2727
namespace olp {
2828
namespace parser {
29-
using namespace olp::dataservice::read;
29+
using dataservice::read::model::Data;
30+
using dataservice::read::model::Message;
31+
using dataservice::read::model::Messages;
32+
using dataservice::read::model::Metadata;
33+
using dataservice::read::model::StreamOffset;
3034

31-
void from_json(const rapidjson::Value& value, model::Metadata& x) {
35+
void from_json(const rapidjson::Value& value, Metadata& x) {
3236
x.SetPartition(parse<std::string>(value, "partition"));
3337
x.SetChecksum(parse<porting::optional<std::string>>(value, "checksum"));
3438
x.SetCompressedDataSize(
3539
parse<porting::optional<int64_t>>(value, "compressedDataSize"));
3640
x.SetDataSize(parse<porting::optional<int64_t>>(value, "dataSize"));
37-
x.SetData(parse<model::Data>(value, "data"));
41+
x.SetData(parse<Data>(value, "data"));
3842
x.SetDataHandle(parse<porting::optional<std::string>>(value, "dataHandle"));
3943
x.SetTimestamp(parse<porting::optional<int64_t>>(value, "timestamp"));
4044
}
4145

42-
void from_json(const rapidjson::Value& value, model::Message& x) {
43-
x.SetMetaData(parse<model::Metadata>(value, "metaData"));
44-
x.SetOffset(parse<model::StreamOffset>(value, "offset"));
46+
void from_json(const rapidjson::Value& value, Message& x) {
47+
x.SetMetaData(parse<Metadata>(value, "metaData"));
48+
x.SetOffset(parse<StreamOffset>(value, "offset"));
4549
}
4650

47-
void from_json(const rapidjson::Value& value, model::Messages& x) {
48-
x.SetMessages(parse<std::vector<model::Message>>(value, "messages"));
51+
void from_json(const rapidjson::Value& value, Messages& x) {
52+
x.SetMessages(parse<std::vector<Message>>(value, "messages"));
4953
}
5054

5155
} // namespace parser

olp-cpp-sdk-dataservice-read/src/generated/parser/PartitionsParser.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@
2323

2424
namespace olp {
2525
namespace parser {
26-
using namespace olp::dataservice::read;
26+
using dataservice::read::model::Partition;
27+
using dataservice::read::model::Partitions;
2728

28-
void from_json(const rapidjson::Value& value, model::Partition& x) {
29+
void from_json(const rapidjson::Value& value, Partition& x) {
2930
x.SetChecksum(parse<olp::porting::optional<std::string>>(value, "checksum"));
3031
x.SetCompressedDataSize(
3132
parse<olp::porting::optional<int64_t>>(value, "compressedDataSize"));
@@ -36,8 +37,8 @@ void from_json(const rapidjson::Value& value, model::Partition& x) {
3637
x.SetVersion(parse<olp::porting::optional<int64_t>>(value, "version"));
3738
}
3839

39-
void from_json(const rapidjson::Value& value, model::Partitions& x) {
40-
x.SetPartitions(parse<std::vector<model::Partition>>(value, "partitions"));
40+
void from_json(const rapidjson::Value& value, Partitions& x) {
41+
x.SetPartitions(parse<std::vector<Partition>>(value, "partitions"));
4142
}
4243

4344
} // namespace parser

olp-cpp-sdk-dataservice-read/tests/SerializerTest.cpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,27 @@
3939

4040
namespace {
4141

42-
using namespace olp::dataservice::read::model;
42+
using olp::dataservice::read::model::Api;
43+
using olp::dataservice::read::model::Creator;
44+
using olp::dataservice::read::model::Coverage;
45+
using olp::dataservice::read::model::Owner;
46+
using olp::dataservice::read::model::Schema;
47+
using olp::dataservice::read::model::Partitioning;
48+
using olp::dataservice::read::model::IndexDefinition;
49+
using olp::dataservice::read::model::IndexProperties;
50+
using olp::dataservice::read::model::StreamProperties;
51+
using olp::dataservice::read::model::Encryption;
52+
using olp::dataservice::read::model::Volume;
53+
using olp::dataservice::read::model::Layer;
54+
using olp::dataservice::read::model::Notifications;
55+
using olp::dataservice::read::model::Catalog;
56+
using olp::dataservice::read::model::LayerVersions;
57+
using olp::dataservice::read::model::LayerVersion;
58+
using olp::dataservice::read::model::Partition;
59+
using olp::dataservice::read::model::Partitions;
60+
using olp::dataservice::read::model::VersionResponse;
61+
using olp::dataservice::read::model::StreamOffset;
62+
using olp::dataservice::read::model::StreamOffsets;
4363

4464
void RemoveWhitespaceAndNewlines(std::string& s) {
4565
std::regex r("\\s+");

olp-cpp-sdk-dataservice-write/src/generated/parser/PartitionsParser.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@
2323

2424
namespace olp {
2525
namespace parser {
26-
using namespace olp::dataservice::write;
26+
using dataservice::write::model::Partition;
27+
using dataservice::write::model::Partitions;
2728

28-
void from_json(const rapidjson::Value& value, model::Partition& x) {
29+
void from_json(const rapidjson::Value& value, Partition& x) {
2930
x.SetChecksum(parse<olp::porting::optional<std::string>>(value, "checksum"));
3031
x.SetCompressedDataSize(
3132
parse<olp::porting::optional<int64_t>>(value, "compressedDataSize"));
@@ -35,8 +36,8 @@ void from_json(const rapidjson::Value& value, model::Partition& x) {
3536
x.SetVersion(parse<olp::porting::optional<int64_t>>(value, "version"));
3637
}
3738

38-
void from_json(const rapidjson::Value& value, model::Partitions& x) {
39-
x.SetPartitions(parse<std::vector<model::Partition>>(value, "partitions"));
39+
void from_json(const rapidjson::Value& value, Partitions& x) {
40+
x.SetPartitions(parse<std::vector<Partition>>(value, "partitions"));
4041
}
4142

4243
} // namespace parser

olp-cpp-sdk-dataservice-write/src/generated/serializer/IndexInfoSerializer.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,13 @@ void to_json(const dataservice::write::model::Index &x, rapidjson::Value &value,
2929

3030
rapidjson::Value indexFields(rapidjson::kObjectType);
3131
for (auto &field_pair : x.GetIndexFields()) {
32-
using namespace dataservice::write::model;
32+
using dataservice::write::model::IndexType;
33+
using dataservice::write::model::StringIndexValue;
34+
using dataservice::write::model::IntIndexValue;
35+
using dataservice::write::model::BooleanIndexValue;
36+
using dataservice::write::model::HereTileIndexValue;
37+
using dataservice::write::model::TimeWindowIndexValue;
38+
3339
const auto &field = field_pair.second;
3440
const auto key = rapidjson::StringRef(field_pair.first.c_str());
3541
auto index_type = field->getIndexType();

olp-cpp-sdk-dataservice-write/src/generated/serializer/UpdateIndexRequestSerializer.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,13 @@ void to_json(const dataservice::write::model::UpdateIndexRequest &x,
3232

3333
rapidjson::Value indexFields(rapidjson::kObjectType);
3434
for (const auto &field_pair : addition.GetIndexFields()) {
35-
using namespace dataservice::write::model;
35+
using dataservice::write::model::IndexType;
36+
using dataservice::write::model::StringIndexValue;
37+
using dataservice::write::model::IntIndexValue;
38+
using dataservice::write::model::BooleanIndexValue;
39+
using dataservice::write::model::HereTileIndexValue;
40+
using dataservice::write::model::TimeWindowIndexValue;
41+
3642
const auto &field = field_pair.second;
3743
const auto key = rapidjson::StringRef(field_pair.first.c_str());
3844
auto index_type = field->getIndexType();

olp-cpp-sdk-dataservice-write/tests/ParserTest.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,13 @@
4141

4242
namespace {
4343

44-
using namespace olp::dataservice::write::model;
44+
using olp::dataservice::write::model::Details;
45+
using olp::dataservice::write::model::Publication;
46+
using olp::dataservice::write::model::PublishPartition;
47+
using olp::dataservice::write::model::PublishPartitions;
48+
using olp::dataservice::write::model::ResponseOk;
49+
using olp::dataservice::write::model::ResponseOkSingle;
50+
using olp::dataservice::write::model::VersionDependency;
4551

4652
TEST(ParserTest, ResponseOkSingle) {
4753
auto json = R"(
@@ -560,7 +566,8 @@ TEST(ParserTest, VersionDependency) {
560566
auto response = olp::parser::parse<VersionDependency>(json);
561567

562568
EXPECT_TRUE(response.GetDirect());
563-
EXPECT_STREQ("hrn:here:data::olp-here-test:my-catalog", response.GetHrn().c_str());
569+
EXPECT_STREQ("hrn:here:data::olp-here-test:my-catalog",
570+
response.GetHrn().c_str());
564571
EXPECT_EQ(1, response.GetVersion());
565572
}
566573

0 commit comments

Comments
 (0)