projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cpp-common: add `begin()` and `end()` to Variant and Struct FC
[babeltrace.git]
/
src
/
cpp-common
/
bt2
/
field-class.hpp
diff --git
a/src/cpp-common/bt2/field-class.hpp
b/src/cpp-common/bt2/field-class.hpp
index 46f3a7cf627f0d975b78bdefc5665ba378f0c995..677f7fb466ab8209a947519a68ccfd894070ed69 100644
(file)
--- a/
src/cpp-common/bt2/field-class.hpp
+++ b/
src/cpp-common/bt2/field-class.hpp
@@
-16,6
+16,7
@@
#include "internal/shared-obj.hpp"
#include "cpp-common/optional.hpp"
#include "cpp-common/string_view.hpp"
#include "internal/shared-obj.hpp"
#include "cpp-common/optional.hpp"
#include "cpp-common/string_view.hpp"
+#include "common-iter.hpp"
#include "lib-error.hpp"
#include "integer-range-set.hpp"
#include "field-path.hpp"
#include "lib-error.hpp"
#include "integer-range-set.hpp"
#include "field-path.hpp"
@@
-904,11
+905,12
@@
private:
public:
using Shared = internal::SharedFieldClass<CommonStructureFieldClass<LibObjT>, LibObjT>;
public:
using Shared = internal::SharedFieldClass<CommonStructureFieldClass<LibObjT>, LibObjT>;
-
using Member =
typename std::conditional<std::is_const<LibObjT>::value, ConstStructureFieldClassMember,
StructureFieldClassMember>::type;
using Member =
typename std::conditional<std::is_const<LibObjT>::value, ConstStructureFieldClassMember,
StructureFieldClassMember>::type;
+ using Iterator = CommonIterator<CommonStructureFieldClass<LibObjT>, Member>;
+
explicit CommonStructureFieldClass(const _LibObjPtr libObjPtr) noexcept :
_ThisCommonFieldClass {libObjPtr}
{
explicit CommonStructureFieldClass(const _LibObjPtr libObjPtr) noexcept :
_ThisCommonFieldClass {libObjPtr}
{
@@
-951,6
+953,16
@@
public:
return bt_field_class_structure_get_member_count(this->_libObjPtr());
}
return bt_field_class_structure_get_member_count(this->_libObjPtr());
}
+ Iterator begin() const noexcept
+ {
+ return Iterator {*this, 0};
+ }
+
+ Iterator end() const noexcept
+ {
+ return Iterator {*this, this->size()};
+ }
+
ConstStructureFieldClassMember operator[](const std::uint64_t index) const noexcept
{
return ConstStructureFieldClassMember {
ConstStructureFieldClassMember operator[](const std::uint64_t index) const noexcept
{
return ConstStructureFieldClassMember {
@@
-1723,6
+1735,8
@@
public:
typename std::conditional<std::is_const<LibObjT>::value, ConstVariantFieldClassOption,
VariantFieldClassOption>::type;
typename std::conditional<std::is_const<LibObjT>::value, ConstVariantFieldClassOption,
VariantFieldClassOption>::type;
+ using Iterator = CommonIterator<CommonVariantFieldClass<LibObjT>, Option>;
+
explicit CommonVariantFieldClass(const _LibObjPtr libObjPtr) noexcept :
_ThisCommonFieldClass {libObjPtr}
{
explicit CommonVariantFieldClass(const _LibObjPtr libObjPtr) noexcept :
_ThisCommonFieldClass {libObjPtr}
{
@@
-1748,6
+1762,16
@@
public:
return bt_field_class_variant_get_option_count(this->_libObjPtr());
}
return bt_field_class_variant_get_option_count(this->_libObjPtr());
}
+ Iterator begin() const noexcept
+ {
+ return Iterator {*this, 0};
+ }
+
+ Iterator end() const noexcept
+ {
+ return Iterator {*this, this->size()};
+ }
+
ConstVariantFieldClassOption operator[](const std::uint64_t index) const noexcept
{
return ConstVariantFieldClassOption {
ConstVariantFieldClassOption operator[](const std::uint64_t index) const noexcept
{
return ConstVariantFieldClassOption {
This page took
0.024828 seconds
and
4
git commands to generate.