@@ -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