Skip to content

Commit 016c77a

Browse files
akashihiDenis Chaplygin
authored andcommitted
Flatbuffers is not a boost::optional friendly
1 parent 0205cbc commit 016c77a

File tree

5 files changed

+39
-36
lines changed

5 files changed

+39
-36
lines changed

include/engine/api/base_api.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ class BaseAPI
106106
auto name_string = builder->CreateString(
107107
facade.GetNameForID(facade.GetNameIndex(phantom.forward_segment_id.id)).to_string());
108108

109-
boost::optional<flatbuffers::Offset<flatbuffers::String>> hint_string = boost::none;
109+
flatbuffers::Offset<flatbuffers::String> hint_string;
110110
if (parameters.generate_hints)
111111
{
112112
hint_string = builder->CreateString(Hint{phantom, facade.GetCheckSum()}.ToBase64());
@@ -117,9 +117,9 @@ class BaseAPI
117117
waypoint->add_distance(util::coordinate_calculation::fccApproximateDistance(
118118
phantom.location, phantom.input_location));
119119
waypoint->add_name(name_string);
120-
if (hint_string)
120+
if (parameters.generate_hints)
121121
{
122-
waypoint->add_hint(*hint_string);
122+
waypoint->add_hint(hint_string);
123123
}
124124
return waypoint;
125125
}

include/engine/api/match_api.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class MatchAPI final : public RouteAPI
5050
flatbuffers::FlatBufferBuilder &fb_result) const
5151
{
5252
auto data_timestamp = facade.GetTimestamp();
53-
boost::optional<flatbuffers::Offset<flatbuffers::String>> data_version_string = boost::none;
53+
flatbuffers::Offset<flatbuffers::String> data_version_string;
5454
if (!data_timestamp.empty())
5555
{
5656
data_version_string = fb_result.CreateString(data_timestamp);
@@ -60,9 +60,9 @@ class MatchAPI final : public RouteAPI
6060
return MakeTracepoints(fb_result, sub_matchings);
6161
});
6262

63-
if (data_version_string)
63+
if (!data_timestamp.empty())
6464
{
65-
response->add_data_version(*data_version_string);
65+
response->add_data_version(data_version_string);
6666
}
6767

6868
fb_result.Finish(response->Finish());

include/engine/api/route_api.hpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class RouteAPI : public BaseAPI
7373
{
7474

7575
auto data_timestamp = facade.GetTimestamp();
76-
boost::optional<flatbuffers::Offset<flatbuffers::String>> data_version_string = boost::none;
76+
flatbuffers::Offset<flatbuffers::String> data_version_string;
7777
if (!data_timestamp.empty())
7878
{
7979
data_version_string = fb_result.CreateString(data_timestamp);
@@ -84,9 +84,9 @@ class RouteAPI : public BaseAPI
8484
return BaseAPI::MakeWaypoints(&fb_result, all_start_end_points);
8585
});
8686

87-
if (data_version_string)
87+
if (!data_timestamp.empty())
8888
{
89-
response->add_data_version(*data_version_string);
89+
response->add_data_version(data_version_string);
9090
}
9191
fb_result.Finish(response->Finish());
9292
}
@@ -373,8 +373,7 @@ class RouteAPI : public BaseAPI
373373
requested_annotations = RouteParameters::AnnotationsType::All;
374374
}
375375

376-
boost::optional<flatbuffers::Offset<fbresult::Annotation>> annotation_buffer =
377-
boost::none;
376+
flatbuffers::Offset<fbresult::Annotation> annotation_buffer;
378377
if (requested_annotations != RouteParameters::AnnotationsType::None)
379378
{
380379
annotation_buffer =
@@ -397,9 +396,9 @@ class RouteAPI : public BaseAPI
397396
}
398397
legBuilder.add_steps(steps_vector);
399398

400-
if (annotation_buffer)
399+
if (requested_annotations != RouteParameters::AnnotationsType::None)
401400
{
402-
legBuilder.add_annotations(*annotation_buffer);
401+
legBuilder.add_annotations(annotation_buffer);
403402
}
404403
routeLegs.emplace_back(legBuilder.Finish());
405404
}
@@ -506,8 +505,9 @@ class RouteAPI : public BaseAPI
506505
}
507506
auto nodes_vector = fb_result.CreateVector(nodes);
508507
// Add any supporting metadata, if needed
509-
boost::optional<flatbuffers::Offset<fbresult::Metadata>> metadata_buffer = boost::none;
510-
if (requested_annotations & RouteParameters::AnnotationsType::Datasources)
508+
bool use_metadata = requested_annotations & RouteParameters::AnnotationsType::Datasources;
509+
flatbuffers::Offset<fbresult::Metadata> metadata_buffer;
510+
if (use_metadata)
511511
{
512512
const auto MAX_DATASOURCE_ID = 255u;
513513
std::vector<flatbuffers::Offset<flatbuffers::String>> names;
@@ -529,9 +529,9 @@ class RouteAPI : public BaseAPI
529529
annotation.add_weight(weight);
530530
annotation.add_datasources(datasources);
531531
annotation.add_nodes(nodes_vector);
532-
if (metadata_buffer)
532+
if (use_metadata)
533533
{
534-
annotation.add_metadata(*metadata_buffer);
534+
annotation.add_metadata(metadata_buffer);
535535
}
536536

537537
return annotation.Finish();

include/engine/api/table_api.hpp

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class TableAPI final : public BaseAPI
7474
auto number_of_destinations = parameters.destinations.size();
7575

7676
auto data_timestamp = facade.GetTimestamp();
77-
boost::optional<flatbuffers::Offset<flatbuffers::String>> data_version_string = boost::none;
77+
flatbuffers::Offset<flatbuffers::String> data_version_string;
7878
if (!data_timestamp.empty())
7979
{
8080
data_version_string = fb_result.CreateString(data_timestamp);
@@ -116,21 +116,24 @@ class TableAPI final : public BaseAPI
116116
}
117117
}
118118

119-
boost::optional<flatbuffers::Offset<flatbuffers::Vector<float>>> durations = boost::none;
120-
if (parameters.annotations & TableParameters::AnnotationsType::Duration)
119+
bool use_durations = parameters.annotations & TableParameters::AnnotationsType::Duration;
120+
flatbuffers::Offset<flatbuffers::Vector<float>> durations;
121+
if (use_durations)
121122
{
122123
durations = MakeDurationTable(fb_result, tables.first);
123124
}
124125

125-
boost::optional<flatbuffers::Offset<flatbuffers::Vector<float>>> distances = boost::none;
126-
if (parameters.annotations & TableParameters::AnnotationsType::Distance)
126+
bool use_distances = parameters.annotations & TableParameters::AnnotationsType::Distance;
127+
flatbuffers::Offset<flatbuffers::Vector<float>> distances;
128+
if (use_distances)
127129
{
128130
distances = MakeDistanceTable(fb_result, tables.second);
129131
}
130132

131-
boost::optional<flatbuffers::Offset<flatbuffers::Vector<uint32_t>>> speed_cells =
132-
boost::none;
133-
if (parameters.fallback_speed != INVALID_FALLBACK_SPEED && parameters.fallback_speed > 0)
133+
bool have_speed_cells =
134+
parameters.fallback_speed != INVALID_FALLBACK_SPEED && parameters.fallback_speed > 0;
135+
flatbuffers::Offset<flatbuffers::Vector<uint32_t>> speed_cells;
136+
if (have_speed_cells)
134137
{
135138
speed_cells = MakeEstimatesTable(fb_result, fallback_speed_cells);
136139
}
@@ -139,24 +142,24 @@ class TableAPI final : public BaseAPI
139142
table.add_destinations(destinations);
140143
table.add_rows(number_of_sources);
141144
table.add_cols(number_of_destinations);
142-
if (durations)
145+
if (use_durations)
143146
{
144-
table.add_durations(*durations);
147+
table.add_durations(durations);
145148
}
146-
if (distances)
149+
if (use_distances)
147150
{
148-
table.add_distances(*distances);
151+
table.add_distances(distances);
149152
}
150-
if (speed_cells)
153+
if (have_speed_cells)
151154
{
152-
table.add_fallback_speed_cells(*speed_cells);
155+
table.add_fallback_speed_cells(speed_cells);
153156
}
154157
auto table_buffer = table.Finish();
155158

156159
fbresult::FBResultBuilder response(fb_result);
157-
if (data_version_string)
160+
if (!data_timestamp.empty())
158161
{
159-
response.add_data_version(*data_version_string);
162+
response.add_data_version(data_version_string);
160163
}
161164
response.add_table(table_buffer);
162165
response.add_waypoints(sources);

include/engine/api/trip_api.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class TripAPI final : public RouteAPI
4848
flatbuffers::FlatBufferBuilder &fb_result) const
4949
{
5050
auto data_timestamp = facade.GetTimestamp();
51-
boost::optional<flatbuffers::Offset<flatbuffers::String>> data_version_string = boost::none;
51+
flatbuffers::Offset<flatbuffers::String> data_version_string;
5252
if (!data_timestamp.empty())
5353
{
5454
data_version_string = fb_result.CreateString(data_timestamp);
@@ -59,9 +59,9 @@ class TripAPI final : public RouteAPI
5959
return MakeWaypoints(fb_result, sub_trips, phantoms);
6060
});
6161

62-
if (data_version_string)
62+
if (!data_timestamp.empty())
6363
{
64-
response->add_data_version(*data_version_string);
64+
response->add_data_version(data_version_string);
6565
}
6666
fb_result.Finish(response->Finish());
6767
}

0 commit comments

Comments
 (0)