CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
edm::UnscheduledCallProducer Class Reference

#include <UnscheduledCallProducer.h>

Public Types

using const_iterator = worker_container::const_iterator
 
using worker_container = std::vector< Worker * >
 

Public Member Functions

void addWorker (Worker *aWorker)
 
UnscheduledAuxiliary const & auxiliary () const
 
const_iterator begin () const
 
const_iterator end () const
 
void removeWorker (Worker const *worker)
 
template<typename T >
void runAccumulatorsAsync (WaitingTaskHolder task, typename T::TransitionInfoType const &info, ServiceToken const &token, StreamID streamID, ParentContext const &parentContext, typename T::Context const *context) noexcept
 
void setEventTransitionInfo (EventTransitionInfo const &info)
 
 UnscheduledCallProducer (ActivityRegistry &iReg)
 
worker_container const & workers () const
 

Private Attributes

worker_container accumulatorWorkers_
 
UnscheduledAuxiliary aux_
 
worker_container unscheduledWorkers_
 

Detailed Description

Definition at line 35 of file UnscheduledCallProducer.h.

Member Typedef Documentation

◆ const_iterator

using edm::UnscheduledCallProducer::const_iterator = worker_container::const_iterator

Definition at line 38 of file UnscheduledCallProducer.h.

◆ worker_container

Definition at line 37 of file UnscheduledCallProducer.h.

Constructor & Destructor Documentation

◆ UnscheduledCallProducer()

edm::UnscheduledCallProducer::UnscheduledCallProducer ( ActivityRegistry iReg)
inline

Definition at line 40 of file UnscheduledCallProducer.h.

References aux_, edm::signalslot::Signal< T >::connect(), edm::UnscheduledAuxiliary::postModuleDelayedGetSignal_, edm::ActivityRegistry::postModuleEventDelayedGetSignal_, edm::UnscheduledAuxiliary::preModuleDelayedGetSignal_, and edm::ActivityRegistry::preModuleEventDelayedGetSignal_.

41  aux_.preModuleDelayedGetSignal_.connect(std::cref(iReg.preModuleEventDelayedGetSignal_));
42  aux_.postModuleDelayedGetSignal_.connect(std::cref(iReg.postModuleEventDelayedGetSignal_));
43  }
signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> preModuleDelayedGetSignal_
signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)> postModuleDelayedGetSignal_
void connect(U iFunc)
Definition: Signal.h:74

Member Function Documentation

◆ addWorker()

void edm::UnscheduledCallProducer::addWorker ( Worker aWorker)
inline

Definition at line 44 of file UnscheduledCallProducer.h.

References accumulatorWorkers_, cms::cuda::assert(), edm::Worker::hasAccumulator(), and unscheduledWorkers_.

Referenced by edm::WorkerManager::addToUnscheduledWorkers().

44  {
45  assert(nullptr != aWorker);
46  unscheduledWorkers_.push_back(aWorker);
47  if (aWorker->hasAccumulator()) {
48  accumulatorWorkers_.push_back(aWorker);
49  }
50  }
assert(be >=bs)

◆ auxiliary()

UnscheduledAuxiliary const& edm::UnscheduledCallProducer::auxiliary ( ) const
inline

Definition at line 61 of file UnscheduledCallProducer.h.

References aux_.

Referenced by edm::WorkerManager::setupResolvers().

61 { return aux_; }

◆ begin()

const_iterator edm::UnscheduledCallProducer::begin ( void  ) const
inline

Definition at line 63 of file UnscheduledCallProducer.h.

References unscheduledWorkers_.

63 { return unscheduledWorkers_.begin(); }

◆ end()

const_iterator edm::UnscheduledCallProducer::end ( void  ) const
inline

Definition at line 64 of file UnscheduledCallProducer.h.

References unscheduledWorkers_.

Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

64 { return unscheduledWorkers_.end(); }

◆ removeWorker()

void edm::UnscheduledCallProducer::removeWorker ( Worker const *  worker)
inline

Definition at line 52 of file UnscheduledCallProducer.h.

References accumulatorWorkers_, MatrixUtil::remove(), and unscheduledWorkers_.

Referenced by edm::WorkerManager::deleteModuleIfExists().

52  {
54  unscheduledWorkers_.end());
56  accumulatorWorkers_.end());
57  }
def remove(d, key, TELL=False)
Definition: MatrixUtil.py:233

◆ runAccumulatorsAsync()

template<typename T >
void edm::UnscheduledCallProducer::runAccumulatorsAsync ( WaitingTaskHolder  task,
typename T::TransitionInfoType const &  info,
ServiceToken const &  token,
StreamID  streamID,
ParentContext const &  parentContext,
typename T::Context const *  context 
)
inlinenoexcept

Definition at line 68 of file UnscheduledCallProducer.h.

References accumulatorWorkers_, visDQMUpload::context, info(), TrackValidation_cff::task, and unpackBuffers-CaloStage2::token.

Referenced by edm::WorkerManager::processAccumulatorsAsync().

73  {
74  for (auto worker : accumulatorWorkers_) {
75  worker->doWorkAsync<T>(task, info, token, streamID, parentContext, context);
76  }
77  }
static const TGPicture * info(bool iBackgroundIsBlack)
long double T

◆ setEventTransitionInfo()

void edm::UnscheduledCallProducer::setEventTransitionInfo ( EventTransitionInfo const &  info)
inline

Definition at line 59 of file UnscheduledCallProducer.h.

References aux_, info(), and edm::UnscheduledAuxiliary::setEventTransitionInfo().

Referenced by edm::WorkerManager::setupOnDemandSystem().

static const TGPicture * info(bool iBackgroundIsBlack)
void setEventTransitionInfo(EventTransitionInfo const &info)

◆ workers()

worker_container const& edm::UnscheduledCallProducer::workers ( ) const
inline

Definition at line 65 of file UnscheduledCallProducer.h.

References unscheduledWorkers_.

Referenced by edm::WorkerManager::unscheduledWorkers().

65 { return unscheduledWorkers_; }

Member Data Documentation

◆ accumulatorWorkers_

worker_container edm::UnscheduledCallProducer::accumulatorWorkers_
private

Definition at line 81 of file UnscheduledCallProducer.h.

Referenced by addWorker(), removeWorker(), and runAccumulatorsAsync().

◆ aux_

UnscheduledAuxiliary edm::UnscheduledCallProducer::aux_
private

◆ unscheduledWorkers_

worker_container edm::UnscheduledCallProducer::unscheduledWorkers_
private

Definition at line 80 of file UnscheduledCallProducer.h.

Referenced by addWorker(), begin(), end(), removeWorker(), and workers().