1515#include " Framework/Pack.h"
1616#include " Framework/FunctionalHelpers.h"
1717#include " Headers/DataHeader.h"
18+ #include " Headers/DataHeaderHelpers.h"
1819#include " Framework/CompilerBuiltins.h"
1920#include " Framework/Traits.h"
2021#include " Framework/Expressions.h"
@@ -313,7 +314,7 @@ template <typename T>
313314concept ng_metadata = framework::is_base_of_template_v<TableMetadata, T>;
314315
315316template <typename D>
316- struct MetadataTraitNG {
317+ struct MetadataTrait {
317318 using metadata = void ;
318319};
319320
@@ -327,7 +328,7 @@ template <size_t N, std::array<soa::TableRef, N> ar, typename Key>
327328consteval auto filterForKey ()
328329{
329330 constexpr std::array<bool , N> test = []<size_t ... Is>(std::index_sequence<Is...>) {
330- return std::array<bool , N>{(Key::template hasOriginal<ar[Is]>() || (o2::aod::MetadataTraitNG <o2::aod::Hash<ar[Is].desc_hash >>::metadata::template getIndexPosToKey<Key>() >= 0 ))...};
331+ return std::array<bool , N>{(Key::template hasOriginal<ar[Is]>() || (o2::aod::MetadataTrait <o2::aod::Hash<ar[Is].desc_hash >>::metadata::template getIndexPosToKey<Key>() >= 0 ))...};
331332 }(std::make_index_sequence<N>());
332333 constexpr int correct = std::ranges::count (test.begin (), test.end (), true );
333334 std::array<soa::TableRef, correct> out;
@@ -461,11 +462,11 @@ inline constexpr bool is_type_with_parent_v = false;
461462template <typename T>
462463inline constexpr bool is_type_with_parent_v<T, std::void_t <decltype (sizeof (typename T::parent_t ))>> = true ;
463464
464- template <typename T>
465- concept has_metadata = not_void<typename aod::MetadataTrait<std::decay_t <T>>::metadata>;
465+ // template <typename T>
466+ // concept has_metadata = not_void<typename aod::MetadataTrait<std::decay_t<T>>::metadata>;
466467
467468template <typename T>
468- concept has_ng_metadata = not_void<typename aod::MetadataTraitNG <o2::aod::Hash<std::decay_t <T>::ref.desc_hash>>::metadata>;
469+ concept has_metadata = not_void<typename aod::MetadataTrait <o2::aod::Hash<std::decay_t <T>::ref.desc_hash>>::metadata>;
469470
470471template <typename T>
471472concept spawnable = std::is_same_v<typename T::spawnable_t , std::true_type>;
@@ -1590,16 +1591,19 @@ concept ng_iterator = framework::is_base_of_template_v<TableIterator, T> || fram
15901591// return false;
15911592// }
15921593
1593- template <typename A >
1594+ template <typename T >
15941595concept with_originals = requires () {
1595- A ::originals.size ();
1596+ T ::originals.size ();
15961597};
15971598
15981599template <typename T>
15991600concept with_sources = requires () {
1600- o2::aod::MetadataTraitNG<T>::metadata ::sources.size ();
1601+ T ::sources.size ();
16011602};
16021603
1604+ template <typename T>
1605+ concept with_base_table = not_void<typename aod::MetadataTrait<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t >;
1606+
16031607template <with_originals T, with_originals B>
16041608consteval bool is_binding_compatible_v ()
16051609{
@@ -1661,7 +1665,7 @@ static constexpr std::string getLabelForTable()
16611665}
16621666
16631667template <soa::ng_table T>
1664- requires (!index_table<T>)
1668+ requires (!(soa:: index_table<T> || soa::with_base_table<T>) )
16651669static constexpr std::string getLabelFromType ()
16661670{
16671671 return getLabelForTable<T>();
@@ -1673,16 +1677,15 @@ static constexpr std::string getLabelFromType()
16731677 return getLabelForTable<typename std::decay_t <T>::parent_t >();
16741678}
16751679
1676- template <index_table T>
1680+ template <soa:: index_table T>
16771681static constexpr std::string getLabelFromType ()
16781682{
16791683 return getLabelForTable<typename std::decay_t <T>::first_t >();
16801684}
1681- template <with_sources T>
1682- requires (not_void<typename aod::MetadataTraitNG<o2::aod::Hash<T::ref.desc_hash>>::metadata::base_table_t >)
1685+ template <soa::with_base_table T>
16831686static constexpr std::string getLabelFromType ()
16841687{
1685- return getLabelForTable<typename aod::MetadataTraitNG <o2::aod::Hash<T::ref.desc_hash >>::metadata::base_table_t >();
1688+ return getLabelForTable<typename aod::MetadataTrait <o2::aod::Hash<T::ref.desc_hash >>::metadata::base_table_t >();
16861689}
16871690
16881691template <typename ... C>
@@ -1700,7 +1703,7 @@ static constexpr auto hasColumnForKey(framework::pack<C...>, std::string const&
17001703template <TableRef ref>
17011704static constexpr std::pair<bool , std::string> hasKey (std::string const & key)
17021705{
1703- return {hasColumnForKey (typename aod::MetadataTraitNG <o2::aod::Hash<ref.desc_hash >>::metadata::columns{}, key), o2::aod::Hash<ref.label_hash >::str};
1706+ return {hasColumnForKey (typename aod::MetadataTrait <o2::aod::Hash<ref.desc_hash >>::metadata::columns{}, key), o2::aod::Hash<ref.label_hash >::str};
17041707}
17051708
17061709template <typename ... C>
@@ -2076,7 +2079,7 @@ consteval auto base_iter(framework::pack<C...>&&) -> TableIterator<D, O, IP, C..
20762079template <TableRef ref>
20772080consteval auto getColumns ()
20782081{
2079- return typename aod::MetadataTraitNG <o2::aod::Hash<ref.desc_hash >>::metadata::columns{};
2082+ return typename aod::MetadataTrait <o2::aod::Hash<ref.desc_hash >>::metadata::columns{};
20802083}
20812084
20822085template <aod::aod_hash L, aod::aod_hash D, aod::origin_hash O, typename ... Ts>
@@ -3884,7 +3887,7 @@ consteval auto getIndexTargets()
38843887
38853888#define DECLARE_SOA_TABLE_METADATA_TRAIT (_Name_, _Desc_, _Version_ )\
38863889 template <> \
3887- struct MetadataTraitNG <Hash<_Desc_ " /" #_Version_ " " _h>> { \
3890+ struct MetadataTrait <Hash<_Desc_ " /" #_Version_ " " _h>> { \
38883891 using metadata = _Name_##Metadata; \
38893892 };
38903893
@@ -3894,7 +3897,7 @@ consteval auto getIndexTargets()
38943897 using _Name_##From = o2::soa::TableNG<Hash<_Label_ " " _h>, Hash<_Desc_ " /" #_Version_ " " _h>, O>; \
38953898 using _Name_ = _Name_##From<Hash<_Origin_ " " _h>>; \
38963899 template <> \
3897- struct MetadataTraitNG <Hash<_Desc_ " /" #_Version_ " " _h>> { \
3900+ struct MetadataTrait <Hash<_Desc_ " /" #_Version_ " " _h>> { \
38983901 using metadata = _Name_##Metadata; \
38993902 };
39003903
@@ -3986,7 +3989,7 @@ consteval auto getIndexTargets()
39863989 }; \
39873990 using _Name_##ExtensionMetadata = _Name_##ExtensionMetadataFrom<o2::aod::Hash<_Origin_ " " _h>>; \
39883991 template <> \
3989- struct MetadataTraitNG <o2::aod::Hash<_Desc_ " /" #_Version_ " " _h>> { \
3992+ struct MetadataTrait <o2::aod::Hash<_Desc_ " /" #_Version_ " " _h>> { \
39903993 using metadata = _Name_##ExtensionMetadata; \
39913994 }; \
39923995 template <typename O> \
@@ -4063,7 +4066,7 @@ consteval auto getIndexTargets()
40634066 using _Name_ = _Name_##From<o2::aod::Hash<_Origin_ " " _h>>; \
40644067 \
40654068 template <> \
4066- struct MetadataTraitNG <o2::aod::Hash<_Desc_ " /" #_Version_ " " _h>> { \
4069+ struct MetadataTrait <o2::aod::Hash<_Desc_ " /" #_Version_ " " _h>> { \
40674070 using metadata = _Name_##Metadata; \
40684071 };
40694072
0 commit comments