@@ -3851,6 +3851,12 @@ consteval auto getIndexTargets()
38513851#define DECLARE_SOA_TABLE_METADATA(_Name_, _Desc_, _Version_, ...) \
38523852 using _Name_##Metadata = TableMetadataNG<Hash<_Desc_ "/" #_Version_ ""_h>, __VA_ARGS__>; \
38533853
3854+ #define DECLARE_SOA_TABLE_METADATA_TRAIT(_Name_, _Desc_, _Version_)\
3855+ template <> \
3856+ struct MetadataTraitNG<Hash<_Desc_ "/" #_Version_ ""_h>> { \
3857+ using metadata = _Name_##Metadata; \
3858+ };
3859+
38543860#define DECLARE_SOA_TABLE_FULL_VERSIONED_(_Name_, _Label_, _Origin_, _Desc_, _Version_) \
38553861 O2HASH(_Desc_ "/" #_Version_); \
38563862 template <typename O> \
@@ -3861,14 +3867,20 @@ consteval auto getIndexTargets()
38613867 using metadata = _Name_##Metadata; \
38623868 };
38633869
3870+ #define DECLARE_SOA_STAGE(_Name_, _Origin_, _Desc_, _Version_) \
3871+ template <typename O> \
3872+ using _Name_##From = o2::soa::TableNG<Hash<#_Name_ ""_h>, Hash<_Desc_ "/" #_Version_ ""_h>, O>; \
3873+ using _Name_ = _Name_##From<Hash<_Origin_ ""_h>>;
3874+
38643875#define DECLARE_SOA_TABLE_FULL_VERSIONED(_Name_, _Label_, _Origin_, _Desc_, _Version_, ...) \
3876+ O2HASH(#_Name_);\
38653877 DECLARE_SOA_TABLE_METADATA(_Name_, _Desc_, _Version_, __VA_ARGS__); \
3866- DECLARE_SOA_TABLE_FULL_VERSIONED_(_Name_, _Label_ , _Origin_, _Desc_, _Version_);
3878+ DECLARE_SOA_TABLE_FULL_VERSIONED_(_Name_, #_Name_ , _Origin_, _Desc_, _Version_);
38673879
38683880#define DECLARE_SOA_TABLE_FULL(_Name_, _Label_, _Origin_, _Desc_, ...) \
3869- O2HASH(_Label_ ); \
3881+ O2HASH(#_Name_ ); \
38703882 DECLARE_SOA_TABLE_METADATA(_Name_, _Desc_, 0, __VA_ARGS__); \
3871- DECLARE_SOA_TABLE_FULL_VERSIONED_(_Name_, _Label_ , _Origin_, _Desc_, 0)
3883+ DECLARE_SOA_TABLE_FULL_VERSIONED_(_Name_, #_Name_ , _Origin_, _Desc_, 0)
38723884
38733885#define DECLARE_SOA_TABLE(_Name_, _Origin_, _Desc_, ...) \
38743886 DECLARE_SOA_TABLE_FULL(_Name_, #_Name_, _Origin_, _Desc_, __VA_ARGS__)
@@ -3884,8 +3896,9 @@ consteval auto getIndexTargets()
38843896 O2HASH("Stored" #_BaseName_); \
38853897 DECLARE_SOA_TABLE_METADATA(_BaseName_, _Desc_, _Version_, __VA_ARGS__); \
38863898 using Stored##_BaseName_##Metadata = _BaseName_##Metadata; \
3887- DECLARE_SOA_TABLE_FULL_VERSIONED_(_BaseName_, #_BaseName_, "AOD", _Desc_, _Version_); \
3888- DECLARE_SOA_TABLE_FULL_VERSIONED_(Stored##_BaseName_, "Stored" #_BaseName_, "AOD1", _Desc_, _Version_);
3899+ DECLARE_SOA_TABLE_METADATA_TRAIT(_BaseName_, _Desc_, _Version_); \
3900+ DECLARE_SOA_STAGE(_BaseName_, "AOD", _Desc_, _Version_); \
3901+ DECLARE_SOA_STAGE(Stored##_BaseName_, "AOD1", _Desc_, _Version_);
38893902
38903903#define DECLARE_SOA_TABLE_STAGED(_BaseName_, _Desc_, ...) \
38913904 DECLARE_SOA_TABLE_STAGED_VERSIONED(_BaseName_, _Desc_, 0, __VA_ARGS__);
0 commit comments