From 41c4bedfcf8c3c10a893c88cfa6278a73397ec12 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Tue, 17 May 2022 14:09:05 -0400 Subject: [PATCH] field-class.hpp: support optional variant FC option name Signed-off-by: Philippe Proulx Change-Id: I4b2df4343a0f773b82e472b1138536440279e940 Reviewed-on: https://review.lttng.org/c/babeltrace/+/8056 Reviewed-on: https://review.lttng.org/c/babeltrace/+/10799 Tested-by: jenkins --- src/cpp-common/bt2/field-class.hpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/cpp-common/bt2/field-class.hpp b/src/cpp-common/bt2/field-class.hpp index a7c4ba4b..2a167b19 100644 --- a/src/cpp-common/bt2/field-class.hpp +++ b/src/cpp-common/bt2/field-class.hpp @@ -1899,9 +1899,15 @@ public: return *this; } - bpstd::string_view name() const noexcept + nonstd::optional name() const noexcept { - return bt_field_class_variant_option_get_name(this->libObjPtr()); + const auto name = bt_field_class_variant_option_get_name(this->libObjPtr()); + + if (name) { + return name; + } + + return nonstd::nullopt; } ConstFieldClass fieldClass() const noexcept @@ -2031,7 +2037,7 @@ public: return ConstVariantFieldClassOption {_Spec::asBaseOption(this->libObjPtr())}; } - bpstd::string_view name() const noexcept + nonstd::optional name() const noexcept { return this->asBaseOption().name(); } @@ -2273,9 +2279,9 @@ public: } } - void appendOption(const std::string& name, const FieldClass& fc) + void appendOption(const nonstd::optional& name, const FieldClass& fc) { - this->appendOption(name.data(), fc); + this->appendOption(name ? name->data() : nullptr, fc); } Shared shared() const noexcept @@ -2501,9 +2507,10 @@ public: } } - void appendOption(const std::string& name, const FieldClass& fc) + void appendOption(const nonstd::optional& name, const FieldClass& fc, + const typename Option::RangeSet& ranges) { - this->appendOption(name.data(), fc); + this->appendOption(name ? name->data() : nullptr, fc, ranges); } Iterator begin() const noexcept -- 2.34.1