diff --git a/Det/DetDesc/include/DetDesc/ConditionAccessor.h b/Det/DetDesc/include/DetDesc/ConditionAccessor.h index 5d6da3e5b967707c3356063ebbe172e7abef82a5..9709431993fe2f6bb2246cf9f7956343493777f9 100644 --- a/Det/DetDesc/include/DetDesc/ConditionAccessor.h +++ b/Det/DetDesc/include/DetDesc/ConditionAccessor.h @@ -14,6 +14,7 @@ #include <DetDesc/ConditionKey.h> #include <DetDesc/IConditionDerivationMgr.h> #include <DetDesc/ParamValidDataObject.h> +#include <Gaudi/FSMCallbackHolder.h> #include <Gaudi/Property.h> #include <GaudiAlg/FixTESPath.h> #include <GaudiAlg/FunctionalUtilities.h> @@ -157,7 +158,7 @@ namespace LHCb::DetDesc { ConditionAccessor<std::decay_t<T>>>; }; - template <typename Algorithm = FixTESPath<Gaudi::Algorithm>> + template <typename Algorithm = FixTESPath<Gaudi::FSMCallbackHolder<Gaudi::Algorithm>>> using AlgorithmWithCondition = ConditionAccessorHolder<Algorithm>; template <typename... C> diff --git a/Det/LbDD4hep/include/LbDD4hep/ConditionAccessorHolder.h b/Det/LbDD4hep/include/LbDD4hep/ConditionAccessorHolder.h index c86397cbcaf306f2a2c5b9f7c95417362d1762a7..caa5f8a076d70c1dfb1f7c43f9dfa670121dab0d 100644 --- a/Det/LbDD4hep/include/LbDD4hep/ConditionAccessorHolder.h +++ b/Det/LbDD4hep/include/LbDD4hep/ConditionAccessorHolder.h @@ -11,6 +11,7 @@ #pragma once #include <Core/Utils.h> +#include <Gaudi/FSMCallbackHolder.h> #include <Gaudi/Property.h> #include <GaudiAlg/FixTESPath.h> #include <GaudiAlg/FunctionalUtilities.h> @@ -262,7 +263,7 @@ namespace LHCb::Det::LbDD4hep { }; // Inherit from base Algorithm, wrapped in FixTESPath if not already there - template <typename Algorithm = Gaudi::Algorithm> + template <typename Algorithm = Gaudi::FSMCallbackHolder<Gaudi::Algorithm>> using AlgorithmWithCondition = ConditionAccessorHolder<std::conditional_t<has_FixTESPath_v<Algorithm>, Algorithm, FixTESPath<Algorithm>>>; diff --git a/GaudiAlg/include/GaudiAlg/GaudiAlgorithm.h b/GaudiAlg/include/GaudiAlg/GaudiAlgorithm.h index ca4211d5c321fb1f6545f1b8186911d5a5aedb2f..1987a748c89b55080b0f082aa56dcc2b187c5d6b 100644 --- a/GaudiAlg/include/GaudiAlg/GaudiAlgorithm.h +++ b/GaudiAlg/include/GaudiAlg/GaudiAlgorithm.h @@ -25,6 +25,8 @@ #include "GaudiAlg/GaudiAlg.h" #include "GaudiAlg/GaudiCommon.h" #include "GaudiKernel/DataObjectHandle.h" +#include <Gaudi/FSMCallbackHolder.h> + // ============================================================================ // forward declarations: // ============================================================================ @@ -101,7 +103,7 @@ class INTupleSvc; * @date 30/06/2001 */ // ============================================================================ -class GAUDI_API GaudiAlgorithm : public GaudiCommon<Algorithm> { +class GAUDI_API GaudiAlgorithm : public GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>> { public: // ========================================================================== /** standard initialization method @@ -178,7 +180,7 @@ public: } void put( IDataProviderSvc* svc, std::unique_ptr<DataObject> object, const std::string& address, const bool useRootInTES = true ) const { - GaudiCommon<Algorithm>::put( svc, std::move( object ), address, useRootInTES ); + GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::put( svc, std::move( object ), address, useRootInTES ); } /** @brief Register a data object or container into Gaudi Event Transient Store @@ -217,7 +219,8 @@ public: } const DataObject* put( std::unique_ptr<DataObject> object, const std::string& address, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::put( evtSvc(), std::move( object ), address, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::put( evtSvc(), std::move( object ), address, + useRootInTES ); } /** @brief Templated access to the data in Gaudi Transient Store @@ -255,7 +258,7 @@ public: template <class TYPE> typename Gaudi::Utils::GetData<TYPE>::return_type get( IDataProviderSvc* svc, const std::string& location, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::get<TYPE>( svc, location, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::get<TYPE>( svc, location, useRootInTES ); } /** @brief Templated access to the data in Gaudi Transient Store @@ -294,7 +297,7 @@ public: template <class TYPE> typename Gaudi::Utils::GetData<TYPE>::return_type getIfExists( IDataProviderSvc* svc, const std::string& location, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::getIfExists<TYPE>( svc, location, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::getIfExists<TYPE>( svc, location, useRootInTES ); } /** @brief Templated access to the data from Gaudi Event Transient Store @@ -326,7 +329,7 @@ public: template <class TYPE> typename Gaudi::Utils::GetData<TYPE>::return_type get( const std::string& location, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::get<TYPE>( evtSvc(), location, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::get<TYPE>( evtSvc(), location, useRootInTES ); } /** @brief Templated access to the data in Gaudi Transient Store @@ -364,7 +367,7 @@ public: template <class TYPE> typename Gaudi::Utils::GetData<TYPE>::return_type getIfExists( const std::string& location, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::getIfExists<TYPE>( evtSvc(), location, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::getIfExists<TYPE>( evtSvc(), location, useRootInTES ); } /** @brief Templated access to the detector data from the @@ -387,7 +390,7 @@ public: */ template <class TYPE> TYPE* getDet( IDataProviderSvc* svc, const std::string& location ) const { - return GaudiCommon<Algorithm>::get<TYPE>( svc, location, false ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::get<TYPE>( svc, location, false ); } /** @brief Templated access to the detector data from the @@ -415,7 +418,7 @@ public: template <class TYPE> typename Gaudi::Utils::GetData<TYPE>::return_type getDetIfExists( IDataProviderSvc* svc, const std::string& location ) const { - return GaudiCommon<Algorithm>::getIfExists<TYPE>( svc, location, false ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::getIfExists<TYPE>( svc, location, false ); } /** @brief Templated access to the detector data from the @@ -437,7 +440,7 @@ public: */ template <class TYPE> TYPE* getDet( const std::string& location ) const { - return GaudiCommon<Algorithm>::get<TYPE>( detSvc(), location, false ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::get<TYPE>( detSvc(), location, false ); } /** @brief Templated access to the detector data from the @@ -463,7 +466,7 @@ public: */ template <class TYPE> typename Gaudi::Utils::GetData<TYPE>::return_type getDetIfExists( const std::string& location ) const { - return GaudiCommon<Algorithm>::getIfExists<TYPE>( detSvc(), location, false ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::getIfExists<TYPE>( detSvc(), location, false ); } /** @brief Check the existence of a data object or container @@ -494,7 +497,7 @@ public: */ template <class TYPE> bool exist( IDataProviderSvc* svc, const std::string& location, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::exist<TYPE>( svc, location, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::exist<TYPE>( svc, location, useRootInTES ); } /** @brief Check the existence of a data object or container @@ -524,7 +527,7 @@ public: */ template <class TYPE> bool exist( const std::string& location, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::exist<TYPE>( evtSvc(), location, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::exist<TYPE>( evtSvc(), location, useRootInTES ); } /** @brief Check the existence of detector objects in the Gaudi @@ -545,7 +548,7 @@ public: */ template <class TYPE> bool existDet( IDataProviderSvc* svc, const std::string& location ) const { - return GaudiCommon<Algorithm>::exist<TYPE>( svc, location, false ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::exist<TYPE>( svc, location, false ); } /** @brief Check the existence of detector objects in the Gaudi @@ -565,7 +568,7 @@ public: */ template <class TYPE> bool existDet( const std::string& location ) const { - return GaudiCommon<Algorithm>::exist<TYPE>( detSvc(), location, false ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::exist<TYPE>( detSvc(), location, false ); } /** @brief Get the existing data object from Gaudi Event Transient store. @@ -598,7 +601,7 @@ public: template <class TYPE, class TYPE2> typename Gaudi::Utils::GetData<TYPE>::return_type getOrCreate( IDataProviderSvc* svc, std::string_view location, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::getOrCreate<TYPE, TYPE2>( svc, location, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::getOrCreate<TYPE, TYPE2>( svc, location, useRootInTES ); } /** @brief Get the existing data object from Gaudi Event Transient store. @@ -630,7 +633,8 @@ public: template <class TYPE, class TYPE2> typename Gaudi::Utils::GetData<TYPE>::return_type getOrCreate( const std::string& location, const bool useRootInTES = true ) const { - return GaudiCommon<Algorithm>::getOrCreate<TYPE, TYPE2>( evtSvc(), location, useRootInTES ); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::getOrCreate<TYPE, TYPE2>( evtSvc(), location, + useRootInTES ); } // ========================================================================== diff --git a/GaudiAlg/include/GaudiAlg/GaudiTuples.h b/GaudiAlg/include/GaudiAlg/GaudiTuples.h index 5d379f60f6f05b6c48e23842affa71fedb351f65..fb4803e8d02ce27d8903533b8ee4b196aa35aac5 100644 --- a/GaudiAlg/include/GaudiAlg/GaudiTuples.h +++ b/GaudiAlg/include/GaudiAlg/GaudiTuples.h @@ -281,15 +281,8 @@ protected: // ========================================================================== public: // ========================================================================== - /// Algorithm constructor - the SFINAE constraint below ensures that this is - /// constructor is only defined if PBASE derives from GaudiHistoAlg - template <typename U = PBASE, typename = std::enable_if_t<std::is_base_of_v<GaudiHistoAlg, PBASE>, U>> - GaudiTuples( const std::string& name, ISvcLocator* pSvcLocator ) : PBASE( name, pSvcLocator ) {} - /// Tool constructor - SFINAE-ed to insure this constructor is only defined - /// if PBASE derives from AlgTool. - template <typename U = PBASE, typename = std::enable_if_t<std::is_base_of_v<GaudiHistoTool, PBASE>, U>> - GaudiTuples( const std::string& type, const std::string& name, const IInterface* parent ) - : PBASE( type, name, parent ) {} + /// constructor + using PBASE::PBASE; // ========================================================================== protected: // ========================================================================== diff --git a/GaudiAlg/src/lib/GaudiAlgorithm.cpp b/GaudiAlg/src/lib/GaudiAlgorithm.cpp index b22c312a628a07956d5cfc07f56dd090cbd77efe..ba92c68a2e310087210574e187c0e191d45e2136 100644 --- a/GaudiAlg/src/lib/GaudiAlgorithm.cpp +++ b/GaudiAlg/src/lib/GaudiAlgorithm.cpp @@ -38,12 +38,12 @@ // ============================================================================ #include "GaudiCommon.icpp" // ============================================================================ -template class GaudiCommon<Algorithm>; +template class GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>; // ============================================================================ // Standard algorithm like constructor // ============================================================================ GaudiAlgorithm::GaudiAlgorithm( std::string name, ISvcLocator* pSvcLocator ) - : GaudiCommon<Algorithm>( std::move( name ), pSvcLocator ) { + : GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>( std::move( name ), pSvcLocator ) { setProperty( "RegisterForContextService", true ).ignore(); } // ============================================================================ @@ -51,7 +51,7 @@ GaudiAlgorithm::GaudiAlgorithm( std::string name, ISvcLocator* pSvcLocator ) // ============================================================================ StatusCode GaudiAlgorithm::initialize() { // initialize the base class - const StatusCode sc = GaudiCommon<Algorithm>::initialize(); + const StatusCode sc = GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::initialize(); if ( sc.isFailure() ) { return sc; } // Add any customisations here, that cannot go in GaudiCommon @@ -69,7 +69,7 @@ StatusCode GaudiAlgorithm::finalize() { m_evtColSvc.reset(); // finalize the base class and return - return GaudiCommon<Algorithm>::finalize(); + return GaudiCommon<Gaudi::FSMCallbackHolder<Algorithm>>::finalize(); } // ============================================================================ // standard execution method diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/Consumer.h b/Kernel/LHCbAlgs/include/LHCbAlgs/Consumer.h index a96dff33cc022c03568ec4134d67538daad9907a..520bb4d4680b065cf9a0cecaaa8961dc5c4c6545 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/Consumer.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/Consumer.h @@ -20,10 +20,6 @@ namespace LHCb::Algorithm { */ template <typename Signature, typename Traits_ = Traits::Default> - struct Consumer - : Gaudi::FSMCallbackHolder<Gaudi::Functional::Consumer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::Consumer<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using Consumer = Gaudi::Functional::Consumer<Signature, Traits::details::add_base_t<Traits_>>; } // namespace LHCb::Algorithm diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/FilterPredicate.h b/Kernel/LHCbAlgs/include/LHCbAlgs/FilterPredicate.h index 655d7bd5b0c07550e3686b73e4fb28c2e38faf6e..3c5624b8138c2bfceed5a0809d023d7b519fd8a0 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/FilterPredicate.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/FilterPredicate.h @@ -20,10 +20,6 @@ namespace LHCb::Algorithm { * See Traits.h for the LHCb defaults */ template <typename T, typename Traits_ = Traits::Default> - struct FilterPredicate - : Gaudi::FSMCallbackHolder<Gaudi::Functional::FilterPredicate<T, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::FilterPredicate<T, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using FilterPredicate = Gaudi::Functional::FilterPredicate<T, Traits::details::add_base_t<Traits_>>; } // namespace LHCb::Algorithm diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/MergingTransformer.h b/Kernel/LHCbAlgs/include/LHCbAlgs/MergingTransformer.h index b21fbcb5a9f2f2c835ee492bc0de5bd91f5a809b..214dd129a0c18fc895db6d8e7e1bd9e75b29ff7e 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/MergingTransformer.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/MergingTransformer.h @@ -20,12 +20,7 @@ namespace LHCb::Algorithm { * See Traits.h for the LHCb defaults */ template <typename Signature, typename Traits_ = Traits::Default> - struct MergingTransformer - : Gaudi::FSMCallbackHolder< - Gaudi::Functional::MergingTransformer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::MergingTransformer<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using MergingTransformer = Gaudi::Functional::MergingTransformer<Signature, Traits::details::add_base_t<Traits_>>; /** * Redefinition of Gaudi::Functional::MergingMultiTransformer with LHCb customization @@ -33,12 +28,8 @@ namespace LHCb::Algorithm { * See Traits.h for the LHCb defaults */ template <typename Signature, typename Traits_ = Traits::Default> - struct MergingMultiTransformer - : Gaudi::FSMCallbackHolder< - Gaudi::Functional::MergingMultiTransformer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::MergingMultiTransformer<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using MergingMultiTransformer = + Gaudi::Functional::MergingMultiTransformer<Signature, Traits::details::add_base_t<Traits_>>; /** * Redefinition of Gaudi::Functional::MergingConsumer with LHCb customization @@ -46,11 +37,7 @@ namespace LHCb::Algorithm { * See Traits.h for the LHCb defaults */ template <typename Signature, typename Traits_ = Traits::Default> - struct MergingConsumer - : Gaudi::FSMCallbackHolder<Gaudi::Functional::MergingConsumer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::MergingConsumer<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using MergingConsumer = Gaudi::Functional::MergingConsumer<Signature, Traits::details::add_base_t<Traits_>>; /** * Redefinition of Gaudi::Functional::MergingMultiTransformerFilter with LHCb customization @@ -58,11 +45,7 @@ namespace LHCb::Algorithm { * See Traits.h for the LHCb defaults */ template <typename Signature, typename Traits_ = Traits::Default> - struct MergingMultiTransformerFilter - : Gaudi::FSMCallbackHolder< - Gaudi::Functional::MergingMultiTransformerFilter<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder<Gaudi::Functional::MergingMultiTransformerFilter< - Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using MergingMultiTransformerFilter = + Gaudi::Functional::MergingMultiTransformerFilter<Signature, Traits::details::add_base_t<Traits_>>; } // namespace LHCb::Algorithm diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/Producer.h b/Kernel/LHCbAlgs/include/LHCbAlgs/Producer.h index 780f713e138a88745b884dc9402aca0f5ef37159..7b585dc2a166fc19342a609ec5b779fed23302e3 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/Producer.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/Producer.h @@ -21,10 +21,6 @@ namespace LHCb::Algorithm { */ template <typename Signature, typename Traits_ = Traits::Default> - struct Producer - : Gaudi::FSMCallbackHolder<Gaudi::Functional::Producer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::Producer<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using Producer = Gaudi::Functional::Producer<Signature, Traits::details::add_base_t<Traits_>>; } // namespace LHCb::Algorithm diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/ScalarTransformer.h b/Kernel/LHCbAlgs/include/LHCbAlgs/ScalarTransformer.h index 14368bd5a31bfa448e55b9efc0b99b6b4a93d442..45655d1674a3b6b90a68314e26eafb8fdc557185 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/ScalarTransformer.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/ScalarTransformer.h @@ -20,12 +20,8 @@ namespace LHCb::Algorithm { * See Traits.h for the LHCb defaults */ template <typename ScalarOp, typename TransformerSignature, typename Traits_ = Traits::Default> - struct ScalarTransformer - : Gaudi::FSMCallbackHolder<Gaudi::Functional::ScalarTransformer<ScalarOp, TransformerSignature, - Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder<Gaudi::Functional::ScalarTransformer< - ScalarOp, TransformerSignature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using ScalarTransformer = + Gaudi::Functional::ScalarTransformer<ScalarOp, TransformerSignature, Traits::details::add_base_t<Traits_>>; /** * Redefinition of Gaudi::Functional::MultiScalarTransformer with LHCb customization @@ -33,11 +29,7 @@ namespace LHCb::Algorithm { * See Traits.h for the LHCb defaults */ template <typename ScalarOp, typename TransformerSignature, typename Traits_ = Traits::Default> - struct MultiScalarTransformer - : Gaudi::FSMCallbackHolder<Gaudi::Functional::MultiScalarTransformer<ScalarOp, TransformerSignature, - Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder<Gaudi::Functional::MultiScalarTransformer< - ScalarOp, TransformerSignature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using MultiScalarTransformer = + Gaudi::Functional::MultiScalarTransformer<ScalarOp, TransformerSignature, Traits::details::add_base_t<Traits_>>; } // namespace LHCb::Algorithm diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/SplittingMergingTransformer.h b/Kernel/LHCbAlgs/include/LHCbAlgs/SplittingMergingTransformer.h index fa7cc681c4cc1d3be8760fb1605a1a9c95c96c90..a2ee726757f550dc5d3ed1ace7ccd566ade9ee66 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/SplittingMergingTransformer.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/SplittingMergingTransformer.h @@ -21,11 +21,7 @@ namespace LHCb::Algorithm { * See Traits.h for the LHCb defaults */ template <typename Signature, typename Traits_ = Traits::Default> - struct SplittingMergingTransformer - : Gaudi::FSMCallbackHolder< - Gaudi::Functional::SplittingMergingTransformer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder<Gaudi::Functional::SplittingMergingTransformer< - Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using SplittingMergingTransformer = + Gaudi::Functional::SplittingMergingTransformer<Signature, Traits::details::add_base_t<Traits_>>; } // namespace LHCb::Algorithm diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/SplittingTransformer.h b/Kernel/LHCbAlgs/include/LHCbAlgs/SplittingTransformer.h index 4b585476f9a33e1e017805431476fb4923de1cbb..a038187df5b4385c0be837f494e0005d0de560a0 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/SplittingTransformer.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/SplittingTransformer.h @@ -21,11 +21,6 @@ namespace LHCb::Algorithm { */ template <typename Signature, typename Traits_ = Traits::Default> - struct SplittingTransformer - : Gaudi::FSMCallbackHolder< - Gaudi::Functional::SplittingTransformer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::SplittingTransformer<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using SplittingTransformer = Gaudi::Functional::SplittingTransformer<Signature, Traits::details::add_base_t<Traits_>>; } // namespace LHCb::Algorithm diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/Traits.h b/Kernel/LHCbAlgs/include/LHCbAlgs/Traits.h index 70f4a4b3e72d6641981897b6aa3676f6b8ff92f7..29b7a8c330be4c9f76cc086876cc55a51ee3bd65 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/Traits.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/Traits.h @@ -13,18 +13,18 @@ #include "GaudiAlg/FunctionalUtilities.h" // FIXME: remove one level of indirection and decide 'here' between DD4HEP and DetDesc... #include "DetDesc/GenericConditionAccessorHolder.h" -#include <GAUDI_VERSION.h> +#include <Gaudi/FSMCallbackHolder.h> namespace LHCb::Algorithm::Traits { using namespace Gaudi::Functional::Traits; - // At this stage, the only customization is the default base class "FixTESPath<Gaudi::Algorithm>" - using Default = BaseClass_t<FixTESPath<Gaudi::Algorithm>>; + // At this stage, the only customization is the default base class + using Default = BaseClass_t<FixTESPath<Gaudi::FSMCallbackHolder<Gaudi::Algorithm>>>; namespace details { // add a baseclass in case it isn't defined yet... - template <typename Tr, typename Base = FixTESPath<Gaudi::Algorithm>> + template <typename Tr, typename Base = FixTESPath<Gaudi::FSMCallbackHolder<Gaudi::Algorithm>>> using add_base_t = std::conditional_t<Gaudi::cpp17::is_detected_v<Gaudi::Functional::details::detail2::BaseClass_t, Tr>, Tr, use_<Tr, BaseClass_t<Base>>>; @@ -45,17 +45,3 @@ namespace LHCb::Algorithm::Traits { using writeOnly = writeViewFor<T, details::OpaqueView>; } // namespace LHCb::Algorithm::Traits - -// Abusing the fact that this file is included in all LHCb Algorithm files to -// tackle the backward compatibility with Gaudi versions < 39 by defining an -// empty Gaudi::FSMCallbackHolder class -#if GAUDI_MAJOR_VERSION < 39 -namespace Gaudi { - template <class BASE> - class FSMCallbackHolder : public BASE { - using BASE::BASE; - }; -} // namespace Gaudi -#else -# include <Gaudi/FSMCallbackHolder.h> -#endif diff --git a/Kernel/LHCbAlgs/include/LHCbAlgs/Transformer.h b/Kernel/LHCbAlgs/include/LHCbAlgs/Transformer.h index 2a94f061be8c1891ae394cfb1bb16315503bf877..e46654522b31eaff360a708963db8ca511032ffb 100644 --- a/Kernel/LHCbAlgs/include/LHCbAlgs/Transformer.h +++ b/Kernel/LHCbAlgs/include/LHCbAlgs/Transformer.h @@ -20,31 +20,19 @@ namespace LHCb::Algorithm { * see Traits.h for the LHCb defaults */ template <typename Signature, typename Traits_ = Traits::Default> - struct Transformer - : Gaudi::FSMCallbackHolder<Gaudi::Functional::Transformer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::Transformer<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using Transformer = Gaudi::Functional::Transformer<Signature, Traits::details::add_base_t<Traits_>>; /** * Redefinition of Gaudi::Functional::MultiTransformer with LHCb customization */ template <typename Signature, typename Traits_ = Traits::Default> - struct MultiTransformer - : Gaudi::FSMCallbackHolder<Gaudi::Functional::MultiTransformer<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::MultiTransformer<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using MultiTransformer = Gaudi::Functional::MultiTransformer<Signature, Traits::details::add_base_t<Traits_>>; /** * Redefinition of Gaudi::Functional::MultiTransformerFilter with LHCb customization */ template <typename Signature, typename Traits_ = Traits::Default> - struct MultiTransformerFilter - : Gaudi::FSMCallbackHolder< - Gaudi::Functional::MultiTransformerFilter<Signature, Traits::details::add_base_t<Traits_>>> { - using Gaudi::FSMCallbackHolder< - Gaudi::Functional::MultiTransformerFilter<Signature, Traits::details::add_base_t<Traits_>>>::FSMCallbackHolder; - }; + using MultiTransformerFilter = + Gaudi::Functional::MultiTransformerFilter<Signature, Traits::details::add_base_t<Traits_>>; } // namespace LHCb::Algorithm