Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/k4FWCore/Producer.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  * Copyright (c) 2014-2024 Key4hep-Project.
0003  *
0004  * This file is part of Key4hep.
0005  * See https://key4hep.github.io/key4hep-doc/ for further info.
0006  *
0007  * Licensed under the Apache License, Version 2.0 (the "License");
0008  * you may not use this file except in compliance with the License.
0009  * You may obtain a copy of the License at
0010  *
0011  *     http://www.apache.org/licenses/LICENSE-2.0
0012  *
0013  * Unless required by applicable law or agreed to in writing, software
0014  * distributed under the License is distributed on an "AS IS" BASIS,
0015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0016  * See the License for the specific language governing permissions and
0017  * limitations under the License.
0018  */
0019 #ifndef FWCORE_PRODUCER_H
0020 #define FWCORE_PRODUCER_H
0021 
0022 #include "k4FWCore/Transformer.h"
0023 
0024 #include <tuple>
0025 
0026 namespace k4FWCore {
0027 
0028 namespace details {
0029 
0030   template <typename Signature, typename Traits_>
0031   struct Producer;
0032 
0033   template <typename... Out, typename Traits_>
0034   struct Producer<std::tuple<Out...>(), Traits_> : MultiTransformer<std::tuple<Out...>(), Traits_> {
0035     using MultiTransformer<std::tuple<Out...>(), Traits_>::MultiTransformer;
0036   };
0037 
0038   template <typename Out, typename Traits_>
0039   struct Producer<Out(), Traits_> : Transformer<Out(), Traits_> {
0040     using Transformer<Out(), Traits_>::Transformer;
0041   };
0042 
0043 } // namespace details
0044 
0045 template <typename Signature, typename Traits_ = Gaudi::Functional::Traits::useDefaults>
0046 using Producer = details::Producer<Signature, Traits_>;
0047 
0048 } // namespace k4FWCore
0049 
0050 #endif // FWCORE_PRODUCER_H