ADTF  3.18.2
access_element_legacy.h
Go to the documentation of this file.
1 
14 #ifndef DDL_STRUCT_ELEMENT_ACCESS_LEGACY_CLASS_HEADER
15 #define DDL_STRUCT_ELEMENT_ACCESS_LEGACY_CLASS_HEADER
16 
17 #include <a_util/result.h>
19 
20 namespace ddl {
21 namespace access_element {
22 
26 _MAKE_RESULT(-20, ERR_STRUCT_ELEMENT_NOT_FOUND);
27 
34 template <typename AccessType>
36 public:
43  {
44  return &_legacy_struct_element;
45  }
53  const ddl::StructElement* getStructElement(const AccessType& access, size_t leaf_index) const
54  {
55  auto codec_index = access.resolve(leaf_index);
56  const auto& layout = codec_index.getLayout();
57  const auto& type_info = *(layout.type_info);
58  _legacy_struct_element.p_enum = type_info.getLegacyAccessEnumType();
59  _legacy_struct_element.type =
60  static_cast<const a_util::variant::VariantType>(type_info.getType());
61  _legacy_struct_element.name = access.getElementFullName(codec_index);
62  return getStructElement();
63  }
73  a_util::result::Result getStructElement(const AccessType& access,
74  size_t leaf_index,
75  const ddl::StructElement*& struct_element) const
76  {
77  try {
78  struct_element = getStructElement(access, leaf_index);
79  return {};
80  }
81  catch (...) {
82  return ERR_STRUCT_ELEMENT_NOT_FOUND;
83  }
84  }
85 
86 private:
87  mutable ddl::StructElement _legacy_struct_element = {};
88 };
89 
90 } // namespace access_element
91 } // namespace ddl
92 
93 #endif // DDL_STRUCT_ELEMENT_ACCESS_LEGACY_CLASS_HEADER
A common result class usable as return value throughout.
Legacy helper for the ddl::StructElement.
a_util::result::Result getStructElement(const AccessType &access, size_t leaf_index, const ddl::StructElement *&struct_element) const
Fill the local Struct Element and retrieves the Struct Element pointer for legacy in struct_element.
const ddl::StructElement * getStructElement() const
Get the converted StructElement pointer.
const ddl::StructElement * getStructElement(const AccessType &access, size_t leaf_index) const
Fill the local Struct Element and retrieves the Struct Element pointer for legacy.
_MAKE_RESULT(-20, ERR_STRUCT_ELEMENT_NOT_FOUND)
Creates an a_util error ERR_AUTIL_NOT_FOUND.
@ type_info
Type Info.
Definition of old StructElement legacy header for old Codec API.
Common include for component a_util::result.