57 return module().shouldWeCloseFile();
84 mergeableRunProductMetadata,
86 std::exception_ptr ex;
96 mod.doWriteRun(rp, &mcc, mergeableRunProductMetadata);
98 ex = std::current_exception();
105 template <
typename T>
117 auto t = [&
mod =
module(), &lbp, activityRegistry, token, globalContext, desc = &
description(), iTask]()
mutable {
118 std::exception_ptr ex;
125 activityRegistry->preModuleWriteLumiSignal_(globalContext, mcc);
129 mod.doWriteLuminosityBlock(lbp, &mcc);
131 ex = std::current_exception();
138 template <
typename T>
140 return module().wantAllEvents();
143 template <
typename T>
145 return module().limitReached();
148 template <
typename T>
153 template <
typename T>
155 return module().keptProducts();
158 template <
typename T>
161 module().selectProducts(preg, helper);
164 template <
typename T>
166 std::map<
std::string, std::vector<std::pair<std::string, int>>>
const& outputModulePathPositions,
167 bool anyProductProduced) {
168 module().setEventSelectionInfo(outputModulePathPositions, anyProductProduced);
171 template <
typename T>
173 return module().description();
178 return std::unique_ptr<edm::OutputModuleCommunicator>{};
181 return std::make_unique<OutputModuleCommunicatorT<edm::OutputModule>>(iMod);
184 return std::make_unique<OutputModuleCommunicatorT<edm::global::OutputModuleBase>>(iMod);
187 return std::make_unique<OutputModuleCommunicatorT<edm::one::OutputModuleBase>>(iMod);
190 return std::make_unique<OutputModuleCommunicatorT<edm::limited::OutputModuleBase>>(iMod);
RunPrincipal const & runPrincipal() const
void push(T &&iAction)
asynchronously pushes functor iAction into queue
SharedResourcesAcquirer & sharedResourcesAcquirer()
std::unique_ptr< T, F > make_sentry(T *iObject, F iFunc)
NOTE: if iObject is null, then iFunc will not be called.
Timestamp const & beginTime() const
std::array< SelectedProducts, NumBranchTypes > SelectedProductsForBranchType
FunctorTask< F > * make_functor_task(ALLOC &&iAlloc, F f)
void selectProducts(edm::ProductRegistry const &preg, ThinnedAssociationsHelper const &) override
SharedResourcesAcquirer & sharedResourcesAcquirer()
PostModuleWriteLumi postModuleWriteLumiSignal_
void configure(edm::OutputModuleDescription const &desc) override
LuminosityBlockIndex index() const
void push(T &&iAction)
asynchronously pushes functor iAction into queue
ServiceToken presentToken() const
bool shouldWeCloseFile() const override
ModuleDescription const & description() const override
edm::SelectedProductsForBranchType const & keptProducts() const override
void writeRunAsync(WaitingTaskHolder iTask, edm::RunPrincipal const &rp, ProcessContext const *, ActivityRegistry *, MergeableRunProductMetadata const *) override
void doneWaiting(std::exception_ptr iExcept)
static ServiceRegistry & instance()
Timestamp const & endTime() const
std::unique_ptr< edm::OutputModuleCommunicator > createCommunicatorIfNeeded(void *)
void closeFile() override
PostModuleWriteRun postModuleWriteRunSignal_
static LuminosityBlockIndex invalidLuminosityBlockIndex()
SerialTaskQueueChain & serialQueueChain() const
LimitedTaskQueue & queue()
void writeLumiAsync(WaitingTaskHolder iTask, edm::LuminosityBlockPrincipal const &lbp, ProcessContext const *, ActivityRegistry *) override
void setEventSelectionInfo(std::map< std::string, std::vector< std::pair< std::string, int > > > const &outputModulePathPositions, bool anyProductProduced) override
PreModuleWriteRun preModuleWriteRunSignal_
bool limitReached() const override
bool wantAllEvents() const override
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
T mod(const T &a, const T &b)
void openFile(edm::FileBlock const &fb) override
LuminosityBlockID id() const