1 #ifndef art_Framework_Core_detail_SharedModule_h 2 #define art_Framework_Core_detail_SharedModule_h 7 #include "hep_concurrency/SerialTaskQueueChain.h" 12 #include <type_traits> 15 class SharedResources;
36 template <BranchType BT = InEvent>
42 "async is currently supported only for the 'InEvent' level.");
50 template <
typename... T>
55 std::conjunction_v<std::is_same<detail::SharedResource_t, T>...>);
56 if (
sizeof...(t) == 0) {
63 template <
typename... T>
67 static_assert(std::conjunction_v<std::is_same<std::string, T>...>);
68 if (
sizeof...(t) == 0) {
78 std::unique_ptr<hep::concurrency::SerialTaskQueueChain>
chain_{
nullptr};
std::set< std::string > resourceNames_
void serialize_for(std::string const &name)
std::set< std::string > const & sharedResources() const
void serializeExternal(T const &...)
std::unique_ptr< hep::concurrency::SerialTaskQueueChain > chain_
void serialize_for_resource(T const &...t)
void createQueues(SharedResources const &resources)
void serialize(T const &...)
void serialize_for_external_resource(T const &...t)
hep::concurrency::SerialTaskQueueChain * serialTaskQueueChain() const
void implicit_serialize()