1 #ifndef FWCore_Framework_one_OutputModuleBase_h 2 #define FWCore_Framework_one_OutputModuleBase_h 49 class MergeableRunProductMetadata;
50 class ModuleCallingContext;
51 class PreallocationConfiguration;
53 class ProductRegistry;
54 class ThinnedAssociationsHelper;
55 class SubProcessParentageHelper;
58 template <
typename T>
class OutputModuleCommunicatorT;
61 template<
typename T>
class ModuleHolderT;
69 template <
typename T>
friend class ::edm::WorkerT;
70 template <
typename T>
friend class ::edm::OutputModuleCommunicatorT;
100 virtual bool wantsGlobalRuns()
const = 0;
101 virtual bool wantsGlobalLuminosityBlocks()
const = 0;
108 return resourcesAcquirer_;
118 return subProcessParentageHelper_;
122 return moduleDescription_;
146 void setEventSelectionInfo(
std::map<
std::string, std::vector<std::pair<std::string, int> > >
const& outputModulePathPositions,
147 bool anyProductProduced);
152 return droppedBranchIDToKeptBranchID_;
184 std::vector<detail::TriggerResultsBasedEventSelector>
selectors_;
214 void doRespondToOpenInputFile(
FileBlock const&
fb);
215 void doRespondToCloseInputFile(
FileBlock const&
fb);
226 bool needToRunSelection()
const;
227 std::vector<ProductResolverIndexAndSkipBit> productsUsedBySelection()
const;
232 virtual void reallyCloseFile();
261 std::map<BranchID, BranchDescription const*>& trueBranchIDToKeptBranchDesc,
262 std::set<BranchID>& keptProductsInEvent);
265 moduleDescription_ = md;
SubProcessParentageHelper const * subProcessParentageHelper() const
SharedResourcesAcquirer & sharedResourcesAcquirer()
bool wantAllEvents() const
std::vector< BranchIDList > BranchIDLists
SelectedProductsForBranchType keptProducts_
ModuleDescription moduleDescription_
ParameterSet selectEvents_
std::array< SelectedProducts, NumBranchTypes > SelectedProductsForBranchType
bool wantsStreamRuns() const
SubProcessParentageHelper const * subProcessParentageHelper_
virtual void preActionBeforeRunEventAsync(WaitingTask *iTask, ModuleCallingContext const &iModuleCallingContext, Principal const &iPrincipal) const
bool hasAccumulator() const
void registerProductsAndCallbacks(OutputModuleBase const *, ProductRegistry const *)
SerialTaskQueue luminosityBlockQueue_
ParameterSetID selectorConfig() const
virtual void doBeginLuminosityBlock_(LuminosityBlockForOutput const &)
ProductSelectorRules productSelectorRules_
virtual void doRespondToCloseInputFile_(FileBlock const &)
virtual void doRespondToOpenInputFile_(FileBlock const &)
virtual void openFile(FileBlock const &)
int remainingEvents() const
virtual void doEndRun_(RunForOutput const &)
std::atomic< int > remainingEvents_
bool wantsStreamLuminosityBlocks() const
std::map< BranchID::value_type, BranchID::value_type > const & droppedBranchIDToKeptBranchID()
SelectedProductsForBranchType const & keptProducts() const
SerialTaskQueue * globalRunsQueue()
std::string workerType() const
OutputModuleBase ModuleType
edm::propagate_const< std::unique_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
std::array< bool, NumBranchTypes > const & hasNewlyDroppedBranch() const
SharedResourcesAcquirer resourcesAcquirer_
SerialTaskQueue * globalLuminosityBlocksQueue()
std::array< bool, NumBranchTypes > hasNewlyDroppedBranch_
std::vector< detail::TriggerResultsBasedEventSelector > selectors_
void setModuleDescription(ModuleDescription const &md)
const ModuleDescription & moduleDescription() const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
virtual void doEndLuminosityBlock_(LuminosityBlockForOutput const &)
SerialTaskQueue runQueue_
void doRegisterThinnedAssociations(ProductRegistry const &, ThinnedAssociationsHelper &)
std::string const & processName() const
virtual void doBeginRun_(RunForOutput const &)
std::string process_name_
BranchIDLists const * origBranchIDLists_
virtual void setProcessesWithSelectedMergeableRunProducts(std::set< std::string > const &)
virtual bool shouldWeCloseFile() const
Ask the OutputModule if we should end the current file.
virtual bool isFileOpen() const
std::map< BranchID::value_type, BranchID::value_type > droppedBranchIDToKeptBranchID_
ProductSelector productSelector_
ParameterSetID selector_config_id_
edm::propagate_const< std::unique_ptr< BranchIDLists > > branchIDLists_
bool limitReached() const
std::map< BranchID, bool > keepAssociation_