Skip to content

Commit 1b871a6

Browse files
mw::com: make method enabled_ a plain bool instead of optional
1 parent cef9abd commit 1b871a6

3 files changed

Lines changed: 22 additions & 25 deletions

File tree

score/mw/com/impl/configuration/BUILD

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ cc_library(
214214
srcs = ["lola_method_instance_deployment.cpp"],
215215
hdrs = ["lola_method_instance_deployment.h"],
216216
features = COMPILER_WARNING_FEATURES,
217+
implementation_deps = [":configuration_common_resources"],
217218
tags = ["FFI"],
218219
deps = ["@score_baselibs//score/json"],
219220
)
@@ -501,9 +502,13 @@ cc_unit_test(
501502
cc_unit_test(
502503
name = "lola_method_instance_deployment_test",
503504
srcs = ["lola_method_instance_deployment_test.cpp"],
504-
features = COMPILER_WARNING_FEATURES,
505+
features = COMPILER_WARNING_FEATURES + [
506+
# These tests catch exceptions instead of using gtest EXPECT_DEATH so we disable aborts_upon_exception.
507+
"-aborts_upon_exception",
508+
],
505509
deps = [
506510
":lola_method_instance_deployment",
511+
"@score_baselibs//score/language/futurecpp:futurecpp_test_support",
507512
],
508513
)
509514

score/mw/com/impl/configuration/lola_method_instance_deployment.cpp

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
********************************************************************************/
1313
#include "score/mw/com/impl/configuration/lola_method_instance_deployment.h"
1414

15+
#include "score/mw/com/impl/configuration/configuration_common_resources.h"
16+
1517
#include <limits>
1618
#include <string_view>
1719

@@ -26,25 +28,17 @@ constexpr auto kMethodEnabledKey = "use"sv;
2628
} // namespace
2729

2830
LolaMethodInstanceDeployment::LolaMethodInstanceDeployment(std::optional<QueueSize> queue_size,
29-
std::optional<bool> enabled)
31+
MethodEnabledType enabled)
3032
: queue_size_{queue_size}, enabled_{enabled}
3133
{
3234
}
3335

3436
LolaMethodInstanceDeployment::LolaMethodInstanceDeployment(
3537
const score::json::Object& serialized_lola_method_instance_deployment)
36-
: queue_size_{std::nullopt}, enabled_{std::nullopt}
38+
: queue_size_{std::nullopt}, enabled_{}
3739
{
38-
const auto queue_size_iter = serialized_lola_method_instance_deployment.find(kQueueSizeKey.data());
39-
if (queue_size_iter != serialized_lola_method_instance_deployment.cend())
40-
{
41-
queue_size_ = queue_size_iter->second.As<QueueSize>().value();
42-
}
43-
const auto enabled_iter = serialized_lola_method_instance_deployment.find(kMethodEnabledKey.data());
44-
if (enabled_iter != serialized_lola_method_instance_deployment.cend())
45-
{
46-
enabled_ = enabled_iter->second.As<bool>().value();
47-
}
40+
queue_size_ = GetOptionalValueFromJson<QueueSize>(serialized_lola_method_instance_deployment, kQueueSizeKey);
41+
enabled_ = GetValueFromJson<MethodEnabledType>(serialized_lola_method_instance_deployment, kMethodEnabledKey);
4842
}
4943

5044
LolaMethodInstanceDeployment LolaMethodInstanceDeployment::CreateFromJson(
@@ -55,16 +49,14 @@ LolaMethodInstanceDeployment LolaMethodInstanceDeployment::CreateFromJson(
5549

5650
score::json::Object LolaMethodInstanceDeployment::Serialize() const
5751
{
58-
score::json::Object result;
52+
score::json::Object json_object;
5953
if (queue_size_.has_value())
6054
{
61-
result[kQueueSizeKey.data()] = score::json::Any{queue_size_.value()};
62-
}
63-
if (enabled_.has_value())
64-
{
65-
result[kMethodEnabledKey.data()] = score::json::Any{enabled_.value()};
55+
json_object[kQueueSizeKey] = score::json::Any{queue_size_.value()};
6656
}
67-
return result;
57+
json_object[kMethodEnabledKey] = score::json::Any{enabled_};
58+
59+
return json_object;
6860
}
6961

7062
} // namespace score::mw::com::impl

score/mw/com/impl/configuration/lola_method_instance_deployment.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ class LolaMethodInstanceDeployment
3434
{
3535
public:
3636
using QueueSize = std::uint8_t;
37+
using MethodEnabledType = bool;
3738

3839
/**
3940
* @brief Construct LolaMethodInstanceDeployment with optional queue size, because LolaMethodInstanceDeployment for
4041
* a consumer will have a value while one for a provider will not.
4142
* @param queue_size The maximum number of pending method requests that can be queued.
42-
* @param enabled Optional flag to disable/enable the method. It is always filled on proxy side and always empty
43-
* on skeleton side.
43+
* @param enabled Flag to disable/enable the method. It is always filled on proxy side and it is unused on skeleton
44+
* side.
4445
*/
45-
explicit LolaMethodInstanceDeployment(std::optional<QueueSize> queue_size,
46-
std::optional<bool> enabled = std::nullopt);
46+
explicit LolaMethodInstanceDeployment(std::optional<QueueSize> queue_size, MethodEnabledType enabled);
4747

4848
explicit LolaMethodInstanceDeployment(const score::json::Object& serialized_lola_method_instance_deployment);
4949

@@ -73,7 +73,7 @@ class LolaMethodInstanceDeployment
7373
* @brief The maximum number of method requests that can be queued on the server side.
7474
*/
7575
std::optional<QueueSize> queue_size_;
76-
std::optional<bool> enabled_;
76+
MethodEnabledType enabled_;
7777
};
7878

7979
inline bool operator==(const LolaMethodInstanceDeployment& lhs, const LolaMethodInstanceDeployment& rhs) noexcept

0 commit comments

Comments
 (0)