From 8a79c7775d15705ae620695ce93f35e85e3e7a0b Mon Sep 17 00:00:00 2001 From: Francis Deslauriers Date: Tue, 31 May 2022 10:52:15 -0400 Subject: [PATCH] cpp-common: Add `bt2::CommonStringField::append()` method Signed-off-by: Francis Deslauriers Change-Id: I42217dd06cf53511718d97839bda4f9d0a0ed784 Reviewed-on: https://review.lttng.org/c/babeltrace/+/8196 Reviewed-by: Philippe Proulx Reviewed-on: https://review.lttng.org/c/babeltrace/+/10833 CI-Build: Philippe Proulx Tested-by: jenkins --- src/cpp-common/bt2/field.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/cpp-common/bt2/field.hpp b/src/cpp-common/bt2/field.hpp index a59ac9fd..0be30741 100644 --- a/src/cpp-common/bt2/field.hpp +++ b/src/cpp-common/bt2/field.hpp @@ -962,6 +962,22 @@ public: return *this = val.data(); } + void append(const char * const begin, const std::uint64_t len) + { + static_assert(!std::is_const::value, "`LibObjT` must NOT be `const`."); + + const auto status = bt_field_string_append_with_length(this->libObjPtr(), begin, len); + + if (status == BT_FIELD_STRING_APPEND_STATUS_MEMORY_ERROR) { + throw MemoryError {}; + } + } + + void append(const std::string& val) + { + this->append(val.data(), val.size()); + } + void clear() noexcept { static_assert(!std::is_const::value, "`LibObjT` must NOT be `const`."); -- 2.34.1