59 return module().shouldWeCloseFile();
81 auto t = [&
mod =
module(), &rp, globalContext, token, desc = &
description(), activityRegistry, iTask]()
mutable {
82 std::exception_ptr ex;
93 mod.doWriteRun(rp, &mcc);
95 ex = std::current_exception();
115 auto t=[&
mod =
module(), &lbp, activityRegistry, token, globalContext,desc = &
description(),iTask]()
mutable {
116 std::exception_ptr ex;
123 activityRegistry->preModuleWriteLumiSignal_(globalContext, mcc);
128 mod.doWriteLuminosityBlock(lbp, &mcc);
130 ex = std::current_exception();
148 return module().keptProducts();
153 module().selectProducts(preg, helper);
158 bool anyProductProduced) {
159 module().setEventSelectionInfo(outputModulePathPositions, anyProductProduced);
164 return module().description();
169 return std::unique_ptr<edm::OutputModuleCommunicator>{};
172 return std::make_unique<OutputModuleCommunicatorT<edm::OutputModule>>(iMod);
175 return std::make_unique<OutputModuleCommunicatorT<edm::global::OutputModuleBase>>(iMod);
178 return std::make_unique<OutputModuleCommunicatorT<edm::one::OutputModuleBase>>(iMod);
181 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
void writeRunAsync(WaitingTaskHolder iTask, edm::RunPrincipal const &rp, ProcessContext const *, ActivityRegistry *) override
bool shouldWeCloseFile() const override
ModuleDescription const & description() const override
edm::SelectedProductsForBranchType const & keptProducts() 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