#ifndef BABELTRACE_CPP_COMMON_BT2_TRACE_IR_HPP
#define BABELTRACE_CPP_COMMON_BT2_TRACE_IR_HPP
-#include <type_traits>
#include <cstdint>
+#include <type_traits>
+
#include <babeltrace2/babeltrace.h>
-#include "internal/borrowed-obj.hpp"
#include "cpp-common/optional.hpp"
#include "cpp-common/string_view.hpp"
+
#include "clock-class.hpp"
#include "clock-snapshot.hpp"
#include "field-class.hpp"
#include "field.hpp"
-#include "value.hpp"
+#include "internal/borrowed-obj.hpp"
#include "internal/utils.hpp"
+#include "value.hpp"
namespace bt2 {
return nonstd::nullopt;
}
- void uuid(const std::uint8_t * const uuid) noexcept
+ void uuid(const bt2_common::UuidView& uuid) noexcept
{
- bt_trace_set_uuid(this->libObjPtr(), uuid);
+ bt_trace_set_uuid(this->libObjPtr(), uuid.begin());
}
nonstd::optional<bt2_common::UuidView> uuid() const noexcept
return *this;
}
- Trace::Shared instantiate(const Trace trace)
+ Trace::Shared instantiate()
{
static_assert(!std::is_const<LibObjT>::value, "`LibObjT` must NOT be `const`.");
VariantWithUnsignedIntegerSelectorFieldClass::Shared
createVariantWithUnsignedIntegerSelectorFieldClass(const IntegerFieldClass selectorFieldClass)
{
- return VariantWithUnsignedIntegerSelectorFieldClass {
- this->_createVariantWithIntegerSelectorFieldClass(selectorFieldClass)}
- .shared();
+ return this->_createVariantWithIntegerSelectorFieldClass<
+ VariantWithUnsignedIntegerSelectorFieldClass>(selectorFieldClass);
}
VariantWithSignedIntegerSelectorFieldClass::Shared
createVariantWithSignedIntegerSelectorFieldClass(const IntegerFieldClass selectorFieldClass)
{
- return VariantWithSignedIntegerSelectorFieldClass {
- this->_createVariantWithIntegerSelectorFieldClass(selectorFieldClass)}
- .shared();
+ return this->_createVariantWithIntegerSelectorFieldClass<
+ VariantWithSignedIntegerSelectorFieldClass>(selectorFieldClass);
}
void assignsAutomaticStreamClassId(const bool val) noexcept
}
private:
- bt_field_class *
+ template <typename ObjT>
+ typename ObjT::Shared
_createVariantWithIntegerSelectorFieldClass(const IntegerFieldClass selectorFieldClass)
{
static_assert(!std::is_const<LibObjT>::value, "`LibObjT` must NOT be `const`.");
bt_field_class_variant_create(this->libObjPtr(), selectorFieldClass.libObjPtr());
internal::validateCreatedObjPtr(libObjPtr);
- return libObjPtr;
+ return ObjT::Shared::createWithoutRef(libObjPtr);
}
};