1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#ifndef FWCore_Framework_ModuleRegistryUtilities_h
#define FWCore_Framework_ModuleRegistryUtilities_h
#include <string>
#include <vector>
#include <mutex>
namespace edm {
class ModuleRegistry;
class ActivityRegistry;
class ProductRegistry;
class StreamContext;
class GlobalContext;
namespace eventsetup {
class ESRecordsToProductResolverIndices;
}
class ProcessBlockHelperBase;
class ExceptionCollector;
void finishModulesInitialization(ModuleRegistry& iModuleRegistry,
ProductRegistry const& iProductRegistry,
eventsetup::ESRecordsToProductResolverIndices const& iESIndices,
ProcessBlockHelperBase const& processBlockHelperBase,
std::string const& processName);
/** beginJobFailedForModule has the module id of each module which threw an exception during
* the call to beginJob function. The vector should be passed to `runEndJobForModules`.
* If an exception is thrown, it will be of type cms::Exception.
*/
void runBeginJobForModules(GlobalContext const& iGlobalContext,
ModuleRegistry& iModuleRegistry,
edm::ActivityRegistry& iActivityRegistry,
std::vector<unsigned int>& beginJobFailedForModule) noexcept(false);
/// The vector holds module id for modules which should not have their endJob called.
void runEndJobForModules(GlobalContext const& iGlobalContext,
ModuleRegistry& iModuleRegistry,
ActivityRegistry& iRegistry,
ExceptionCollector& collector,
std::vector<unsigned int> const& beginJobFailedForModule) noexcept;
/** beginStreamFailedForModule holds module id for each module which threw an exception during
* the call to beginStream function. This vector is used to determine which modules should not
* have their endStream called. The vector should be passed to `runEndStreamForModules`.
* If an exception is thrown, it will be of type cms::Exception.
*/
void runBeginStreamForModules(StreamContext const& iStreamContext,
ModuleRegistry& iModuleRegistry,
edm::ActivityRegistry& iActivityRegistry,
std::vector<unsigned int>& beginStreamFailedForModule) noexcept(false);
/// The vector hold module id for modules which should not have their endStream called.
void runEndStreamForModules(StreamContext const& iStreamContext,
ModuleRegistry& iModuleRegistry,
ActivityRegistry& iRegistry,
ExceptionCollector& collector,
std::mutex& collectorMutex,
std::vector<unsigned int> const& beginStreamFailedForModule) noexcept;
} // namespace edm
#endif // FWCore_Framework_ModuleRegistryUtilities_h
|