22 template <
typename Container>
24 template <
typename Container>
30 template <
typename Signature,
typename Traits_,
bool isLegacy>
33 template <
typename Out,
typename In,
typename Traits_>
37 static_assert( std::is_base_of_v<Algorithm, base_class>,
"BaseClass must inherit from Algorithm" );
40 using KeyValues = std::pair<std::string, std::vector<std::string>>;
49 if ( std::is_pointer_v<In> ) {
52 std::for_each( this->
m_inputs.begin(), this->m_inputs.end(),
53 [](
auto& h ) { h.setOptional( true ); } );
61 details::make_vector_of_handles<decltype( this->m_outputs )>( this, m_outputLocations );
62 if constexpr ( details::is_optional<Out> ) {
65 std::for_each( this->m_outputs.begin(), this->m_outputs.end(),
66 []( auto& h ) { h.setOptional( true ); } );
87 auto out = ( *this )( std::as_const( ins ) );
90 " containers, got " + std::to_string( out.size() ) +
" instead",
108 template <
typename T>
114 template <
typename T>
123 template <
typename Signature,
typename Traits_ = Traits::useDefaults>
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
This class represents an entry point to all the event specific data.
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
void reserve(size_type size)
Implementation of property with value of concrete type.
Define general base for Gaudi exception.
virtual const std::string & message() const
error message to be printed
virtual const StatusCode & code() const
StatusCode for Exception.
virtual const std::string & tag() const
name tag for the exception, or exception type
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
This class is used for returning status codes from appropriate routines.
constexpr static const auto FAILURE
Gaudi::tagged_bool< class ImmediatelyInvokeHandler_tag > ImmediatelyInvokeHandler
std::vector< DataObjID > to_DataObjID(const std::vector< std::string > &in)
auto put(const DataObjectHandle< Out1 > &out_handle, Out2 &&out)
Handles make_vector_of_handles(IDataHandleHolder *owner, const std::vector< DataObjID > &init)
typename detail2::OutputHandle< T, Tr, DataObjectWriteHandle >::type OutputHandle_t
detail2::BaseClass< Tr, Default >::type BaseClass_t
std::vector< Container > vector_of_
details::SplittingMergingTransformer< Signature, Traits_, false > SplittingMergingTransformer
std::vector< std::optional< Container > > vector_of_optional_
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...