CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Attributes
evf::FUResourceTable Class Reference

#include <FUResourceTable.h>

Inheritance diagram for evf::FUResourceTable:

Public Member Functions

UInt_t allocateResource ()
 
bool buildResource (MemRef_t *bufRef)
 
std::vector< UInt_tcellEvtNumbers () const
 
std::vector< pid_t > cellPrcIds () const
 
std::vector< std::string > cellStates () const
 
std::vector< time_t > cellTimeStamps () const
 
void clear ()
 
std::vector< pid_t > clientPrcIds () const
 
std::string clientPrcIdsAsString () const
 
bool discard (toolbox::task::WorkLoop *workLoop)
 
bool discardDataEvent (MemRef_t *bufRef)
 
bool discardDqmEvent (MemRef_t *bufRef)
 
std::vector< std::string > dqmCellStates () const
 
void dropEvent ()
 
void dumpEvent (evf::FUShmRawCell *cell)
 
 FUResourceTable (bool segmentationMode, UInt_t nbRawCells, UInt_t nbRecoCells, UInt_t nbDqmCells, UInt_t rawCellSize, UInt_t recoCellSize, UInt_t dqmCellSize, BUProxy *bu, SMProxy *sm, log4cplus::Logger logger, unsigned int, EvffedFillerRB *frb, xdaq::Application *) throw (evf::Exception)
 
void halt ()
 
bool handleCrashedEP (UInt_t runNumber, pid_t pid)
 
void initialize (bool segmentationMode, UInt_t nbRawCells, UInt_t nbRecoCells, UInt_t nbDqmCells, UInt_t rawCellSize, UInt_t recoCellSize, UInt_t dqmCellSize) throw (evf::Exception)
 
void injectCRCError ()
 
bool isActive () const
 
bool isLastMessageOfEvent (MemRef_t *bufRef)
 
bool isReadyToShutDown () const
 
void lastResort ()
 
void lock ()
 
UInt_t nbAllocated () const
 
UInt_t nbAllocSent () const
 
UInt_t nbClients () const
 
UInt_t nbCompleted () const
 
UInt_t nbCrcErrors () const
 
UInt_t nbDiscarded () const
 
UInt_t nbErrors () const
 
UInt_t nbFreeSlots () const
 
UInt_t nbLost () const
 
UInt_t nbPending () const
 
UInt_t nbPendingSMDiscards () const
 
UInt_t nbPendingSMDqmDiscards () const
 
UInt_t nbResources () const
 
UInt_t nbSent () const
 
UInt_t nbSentDqm () const
 
UInt_t nbSentError () const
 
void postEndOfLumiSection (MemRef_t *bufRef)
 
void printWorkLoopStatus ()
 
void resetCounters ()
 
void sendAllocate ()
 
bool sendData (toolbox::task::WorkLoop *workLoop)
 
void sendDataEvent (UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
 
void sendDiscard (UInt_t buResourceId)
 
bool sendDqm (toolbox::task::WorkLoop *workLoop)
 
void sendDqmEvent (UInt_t fuDqmId, UInt_t runNumber, UInt_t evtAtUpdate, UInt_t folderId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
 
void sendErrorEvent (UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
 
void sendInitMessage (UInt_t fuResourceId, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
 
void setDoCrcCheck (UInt_t doCrcCheck)
 
void setDoDumpEvents (UInt_t doDumpEvents)
 
void setRunNumber (UInt_t runNumber)
 
void shutDownClients ()
 
void startDiscardWorkLoop () throw (evf::Exception)
 
void startSendDataWorkLoop () throw (evf::Exception)
 
void startSendDqmWorkLoop () throw (evf::Exception)
 
void stop ()
 
UInt_t sumOfSizes () const
 
uint64_t sumOfSquares () const
 
void unlock ()
 
virtual ~FUResourceTable ()
 

Private Types

typedef
toolbox::task::ActionSignature 
ActionSignature_t
 
typedef toolbox::task::WorkLoop WorkLoop_t
 

Private Attributes

bool * acceptSMDataDiscard_
 
int * acceptSMDqmDiscard_
 
xdaq::Application * app_
 
ActionSignature_tasDiscard_
 
ActionSignature_tasSendData_
 
ActionSignature_tasSendDqm_
 
BUProxybu_
 
UInt_t doCrcCheck_
 
UInt_t doDumpEvents_
 
EvffedFillerRBfrb_
 
std::queue< UInt_tfreeResourceIds_
 
bool isActive_
 
bool isHalting_
 
bool isReadyToShutDown_
 
bool isStopping_
 
toolbox::BSem lock_
 
log4cplus::Logger log_
 
UInt_t nbAllocated_
 
UInt_t nbAllocSent_
 
UInt_t nbClientsToShutDown_
 
UInt_t nbCompleted_
 
UInt_t nbCrcErrors_
 
UInt_t nbDiscarded_
 
UInt_t nbDqmCells_
 
UInt_t nbErrors_
 
UInt_t nbLost_
 
UInt_t nbPending_
 
UInt_t nbPendingSMDiscards_
 
UInt_t nbPendingSMDqmDiscards_
 
UInt_t nbRawCells_
 
UInt_t nbRecoCells_
 
UInt_t nbSent_
 
UInt_t nbSentDqm_
 
UInt_t nbSentError_
 
FUResourceVec_t resources_
 
UInt_t runNumber_
 
FUShmBuffershmBuffer_
 
unsigned int shutdownTimeout_
 
SMProxysm_
 
UInt_t sumOfSizes_
 
uint64_t sumOfSquares_
 
WorkLoop_twlDiscard_
 
WorkLoop_twlSendData_
 
WorkLoop_twlSendDqm_
 

Detailed Description

Definition at line 28 of file FUResourceTable.h.

Member Typedef Documentation

typedef toolbox::task::ActionSignature evf::FUResourceTable::ActionSignature_t
private

Definition at line 211 of file FUResourceTable.h.

typedef toolbox::task::WorkLoop evf::FUResourceTable::WorkLoop_t
private

Definition at line 210 of file FUResourceTable.h.

Constructor & Destructor Documentation

FUResourceTable::FUResourceTable ( bool  segmentationMode,
UInt_t  nbRawCells,
UInt_t  nbRecoCells,
UInt_t  nbDqmCells,
UInt_t  rawCellSize,
UInt_t  recoCellSize,
UInt_t  dqmCellSize,
BUProxy bu,
SMProxy sm,
log4cplus::Logger  logger,
unsigned int  timeout,
EvffedFillerRB frb,
xdaq::Application *  app 
)
throw (evf::Exception
)

Definition at line 34 of file FUResourceTable.cc.

48  : bu_(bu)
49  , sm_(sm)
50  , log_(logger)
51  , wlSendData_(0)
52  , asSendData_(0)
53  , wlSendDqm_(0)
54  , asSendDqm_(0)
55  , wlDiscard_(0)
56  , asDiscard_(0)
57  , shmBuffer_(0)
58  , nbDqmCells_(nbDqmCells)
59  , nbRawCells_(nbRawCells)
60  , nbRecoCells_(nbRecoCells)
63  , doCrcCheck_(1)
64  , shutdownTimeout_(timeout)
65  , nbPending_(0)
67  , isReadyToShutDown_(true)
68  , isActive_(false)
69  , isHalting_(false)
70  , isStopping_(false)
71  , runNumber_(0xffffffff)
72  , lock_(toolbox::BSem::FULL)
73  , frb_(frb)
74  , app_(app)
75 {
76  initialize(segmentationMode,
77  nbRawCells,nbRecoCells,nbDqmCells,
78  rawCellSize,recoCellSize,dqmCellSize);
79 }
std::ostream & logger()
Definition: fwLog.cc:41
xdaq::Application * app_
WorkLoop_t * wlSendData_
FUShmBuffer * shmBuffer_
ActionSignature_t * asDiscard_
ActionSignature_t * asSendData_
EvffedFillerRB * frb_
ActionSignature_t * asSendDqm_
unsigned int shutdownTimeout_
log4cplus::Logger log_
void initialize(bool segmentationMode, UInt_t nbRawCells, UInt_t nbRecoCells, UInt_t nbDqmCells, UInt_t rawCellSize, UInt_t recoCellSize, UInt_t dqmCellSize)
FUResourceTable::~FUResourceTable ( )
virtual

Definition at line 83 of file FUResourceTable.cc.

References evf::FUShmBuffer::releaseSharedMemory().

84 {
85  clear();
86  if(wlSendData_){
87  wlSendData_->cancel();
88  toolbox::task::getWorkLoopFactory()->removeWorkLoop("SendData","waiting");
89  }
90  if(wlSendDqm_){
91  wlSendDqm_->cancel();
92  toolbox::task::getWorkLoopFactory()->removeWorkLoop("SendDqm","waiting");
93  }
94  if(wlDiscard_){
95  wlDiscard_->cancel();
96  toolbox::task::getWorkLoopFactory()->removeWorkLoop("Discard","waiting");
97  }
98  shmdt(shmBuffer_);
100  LOG4CPLUS_INFO(log_,"SHARED MEMORY SUCCESSFULLY RELEASED.");
101  if (0!=acceptSMDataDiscard_) delete [] acceptSMDataDiscard_;
102  if (0!= acceptSMDqmDiscard_) delete [] acceptSMDqmDiscard_;
103 }
static bool releaseSharedMemory()
Definition: FUShmBuffer.cc:960
WorkLoop_t * wlSendData_
FUShmBuffer * shmBuffer_
log4cplus::Logger log_

Member Function Documentation

UInt_t FUResourceTable::allocateResource ( )

Definition at line 435 of file FUResourceTable.cc.

References CommonMethods::lock().

436 {
437  assert(!freeResourceIds_.empty());
438 
439  lock();
440  UInt_t fuResourceId=freeResourceIds_.front();
441  freeResourceIds_.pop();
442  nbPending_++;
443  nbAllocated_++;
444  unlock();
445 
446  return fuResourceId;
447 }
std::queue< UInt_t > freeResourceIds_
unsigned int UInt_t
Definition: FUTypes.h:12
bool FUResourceTable::buildResource ( MemRef_t bufRef)

Definition at line 451 of file FUResourceTable.cc.

References evf::FUResource::allocate(), Association::block, evf::FUResource::doCrcCheck(), dumpEvent(), evf::FUResource::fatalError(), evf::FUResource::isAllocated(), evf::FUResource::isComplete(), CommonMethods::lock(), evf::FUResource::nbCrcErrors(), evf::FUResource::nbErrors(), cmsPerfSuiteHarvest::now, evf::FUResource::process(), evf::FUResource::release(), and evf::FUResource::shmCell().

Referenced by evf::FUResourceBroker::I2O_FU_TAKE_Callback().

452 {
453  bool eventComplete=false;
454 
455  I2O_EVENT_DATA_BLOCK_MESSAGE_FRAME *block=
456  (I2O_EVENT_DATA_BLOCK_MESSAGE_FRAME*)bufRef->getDataLocation();
457 
458  UInt_t fuResourceId=(UInt_t)block->fuTransactionId;
459  UInt_t buResourceId=(UInt_t)block->buResourceId;
460  FUResource* resource =resources_[fuResourceId];
461 
462  // allocate resource
463  if (!resource->fatalError()&&!resource->isAllocated()) {
465  resource->allocate(cell);
466  timeval now;
467  gettimeofday(&now,0);
468 
469  frb_->setRBTimeStamp(((uint64_t)(now.tv_sec) << 32) + (uint64_t)(now.tv_usec));
470 
472 
473  if (doCrcCheck_>0&&0==nbAllocated_%doCrcCheck_) resource->doCrcCheck(true);
474  else resource->doCrcCheck(false);
475  }
476 
477 
478  // keep building this resource if it is healthy
479  if (!resource->fatalError()) {
480  resource->process(bufRef);
481  lock();
482  nbErrors_ +=resource->nbErrors();
483  nbCrcErrors_+=resource->nbCrcErrors();
484  unlock();
485 
486  // make resource available for pick-up
487  if (resource->isComplete()) {
488  lock();
489  nbCompleted_++;
490  nbPending_--;
491  unlock();
493  dumpEvent(resource->shmCell());
495  eventComplete=true;
496  }
497 
498  }
499  // bad event, release msg, and the whole resource if this was the last one
500  //else {
501  if (resource->fatalError()) {
502  bool lastMsg=isLastMessageOfEvent(bufRef);
503  if (lastMsg) {
504  shmBuffer_->releaseRawCell(resource->shmCell());
505  resource->release();
506  lock();
507  freeResourceIds_.push(fuResourceId);
508  nbDiscarded_++;
509  nbLost_++;
510  nbPending_--;
511  unlock();
512  bu_->sendDiscard(buResourceId);
513  sendAllocate();
514  }
515  bufRef->release(); // this should now be safe re: appendToSuperFrag as corrupted blocks will be removed...
516  }
517 
518  return eventComplete;
519 }
void process(MemRef_t *bufRef)
Definition: FUResource.cc:143
bool fatalError() const
Definition: FUResource.h:62
void setRBEventCount(uint32_t evtcnt)
void sendDiscard(UInt_t buResourceId)
Definition: BUProxy.cc:121
UInt_t nbErrors(bool reset=true)
Definition: FUResource.cc:794
void releaseRawCell(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:506
std::queue< UInt_t > freeResourceIds_
FUShmBuffer * shmBuffer_
void finishWritingRawCell(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:372
bool isComplete() const
Definition: FUResource.h:146
EvffedFillerRB * frb_
block
Formating index page&#39;s pieces.
Definition: Association.py:187
bool isLastMessageOfEvent(MemRef_t *bufRef)
unsigned int UInt_t
Definition: FUTypes.h:12
evf::FUShmRawCell * shmCell()
Definition: FUResource.h:77
unsigned long long uint64_t
Definition: Time.h:15
FUShmRawCell * rawCellToWrite()
Definition: FUShmBuffer.cc:290
bool isAllocated() const
Definition: FUResource.h:63
void doCrcCheck(bool doCrcCheck)
Definition: FUResource.h:58
void dumpEvent(evf::FUShmRawCell *cell)
UInt_t nbCrcErrors(bool reset=true)
Definition: FUResource.cc:803
void setRBTimeStamp(uint64_t ts)
void allocate(FUShmRawCell *shmCell)
Definition: FUResource.cc:88
FUResourceVec_t resources_
vector< UInt_t > FUResourceTable::cellEvtNumbers ( ) const

Definition at line 833 of file FUResourceTable.cc.

References i, n, and query::result.

Referenced by evf::FUResourceBroker::watching().

834 {
835  vector<UInt_t> result;
836  if (0!=shmBuffer_) {
837  UInt_t n=nbResources();
838  shmBuffer_->lock();
839  for (UInt_t i=0;i<n;i++) result.push_back(shmBuffer_->evtNumber(i));
840  shmBuffer_->unlock();
841  }
842  return result;
843 }
int i
Definition: DBlmapReader.cc:9
unsigned int evtNumber(unsigned int index)
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
UInt_t nbResources() const
unsigned int UInt_t
Definition: FUTypes.h:12
vector< pid_t > FUResourceTable::cellPrcIds ( ) const

Definition at line 847 of file FUResourceTable.cc.

References i, n, and query::result.

Referenced by evf::FUResourceBroker::watching().

848 {
849  vector<pid_t> result;
850  if (0!=shmBuffer_) {
851  UInt_t n=nbResources();
852  shmBuffer_->lock();
853  for (UInt_t i=0;i<n;i++) result.push_back(shmBuffer_->evtPrcId(i));
854  shmBuffer_->unlock();
855  }
856  return result;
857 }
int i
Definition: DBlmapReader.cc:9
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
pid_t evtPrcId(unsigned int index)
UInt_t nbResources() const
unsigned int UInt_t
Definition: FUTypes.h:12
vector< string > FUResourceTable::cellStates ( ) const

Definition at line 784 of file FUResourceTable.cc.

References evf::evt::DISCARDING, evf::evt::EMPTY, i, n, evf::evt::PROCESSED, evf::evt::PROCESSING, evf::evt::RAWREAD, evf::evt::RAWREADING, evf::evt::RAWWRITING, evf::evt::RAWWRITTEN, evf::evt::RECOWRITING, evf::evt::RECOWRITTEN, query::result, evf::evt::SENDING, evf::evt::SENT, evf::utils::state, and evf::evt::STOP.

785 {
786  vector<string> result;
787  if (0!=shmBuffer_) {
788  UInt_t n=nbResources();
789  shmBuffer_->lock();
790  for (UInt_t i=0;i<n;i++) {
792  if (state==evt::EMPTY) result.push_back("EMPTY");
793  else if (state==evt::STOP) result.push_back("STOP");
794  else if (state==evt::RAWWRITING) result.push_back("RAWWRITING");
795  else if (state==evt::RAWWRITTEN) result.push_back("RAWWRITTEN");
796  else if (state==evt::RAWREADING) result.push_back("RAWREADING");
797  else if (state==evt::RAWREAD) result.push_back("RAWREAD");
798  else if (state==evt::PROCESSING) result.push_back("PROCESSING");
799  else if (state==evt::PROCESSED) result.push_back("PROCESSED");
800  else if (state==evt::RECOWRITING)result.push_back("RECOWRITING");
801  else if (state==evt::RECOWRITTEN)result.push_back("RECOWRITTEN");
802  else if (state==evt::SENDING) result.push_back("SENDING");
803  else if (state==evt::SENT) result.push_back("SENT");
804  else if (state==evt::DISCARDING) result.push_back("DISCARDING");
805  }
806  shmBuffer_->unlock();
807  }
808  return result;
809 }
int i
Definition: DBlmapReader.cc:9
evt::State_t evtState(unsigned int index)
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
UInt_t nbResources() const
unsigned int UInt_t
Definition: FUTypes.h:12
char state
Definition: procUtils.cc:75
vector< time_t > FUResourceTable::cellTimeStamps ( ) const

Definition at line 861 of file FUResourceTable.cc.

References i, n, and query::result.

Referenced by evf::FUResourceBroker::watching().

862 {
863  vector<time_t> result;
864  if (0!=shmBuffer_) {
865  UInt_t n=nbResources();
866  shmBuffer_->lock();
867  for (UInt_t i=0;i<n;i++) result.push_back(shmBuffer_->evtTimeStamp(i));
868  shmBuffer_->unlock();
869  }
870  return result;
871 }
int i
Definition: DBlmapReader.cc:9
time_t evtTimeStamp(unsigned int index)
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
UInt_t nbResources() const
unsigned int UInt_t
Definition: FUTypes.h:12
void FUResourceTable::clear ( void  )
vector< pid_t > FUResourceTable::clientPrcIds ( ) const

Definition at line 757 of file FUResourceTable.cc.

References i, n, and query::result.

Referenced by evf::FUResourceBroker::emergencyStop(), and evf::FUResourceBroker::watching().

758 {
759  vector<pid_t> result;
760  if (0!=shmBuffer_) {
761  UInt_t n=nbClients();
762  for (UInt_t i=0;i<n;i++) result.push_back(shmBuffer_->clientPrcId(i));
763  }
764  return result;
765 }
int i
Definition: DBlmapReader.cc:9
pid_t clientPrcId(unsigned int index)
UInt_t nbClients() const
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
unsigned int UInt_t
Definition: FUTypes.h:12
string FUResourceTable::clientPrcIdsAsString ( ) const

Definition at line 769 of file FUResourceTable.cc.

References i, and n.

Referenced by evf::FUResourceBroker::actionPerformed().

770 {
771  stringstream ss;
772  if (0!=shmBuffer_) {
773  UInt_t n=nbClients();
774  for (UInt_t i=0;i<n;i++) {
775  if (i>0) ss<<",";
776  ss<<shmBuffer_->clientPrcId(i);
777  }
778  }
779  return ss.str();
780 }
int i
Definition: DBlmapReader.cc:9
pid_t clientPrcId(unsigned int index)
UInt_t nbClients() const
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
bool FUResourceTable::discard ( toolbox::task::WorkLoop *  workLoop)

Definition at line 337 of file FUResourceTable.cc.

References evf::FUShmRawCell::buResourceId(), prof2calltree::count, gather_cfg::cout, evf::dqm::EMPTY, evf::FUShmRawCell::fuResourceId(), i, evf::FUShmRawCell::index(), CommonMethods::lock(), evf::evt::LUMISECTION, n, evf::FUShmBuffer::shm_nattch(), evf::utils::state, and evf::evt::STOP.

Referenced by startDiscardWorkLoop().

338 {
341 
342  bool reschedule =true;
343  bool shutDown =(state==evt::STOP);
344  bool isLumi =(state==evt::LUMISECTION);
345  UInt_t fuResourceId=cell->fuResourceId();
346  UInt_t buResourceId=cell->buResourceId();
347 
348  // std::cout << "discard loop, state, shutDown, isLumi " << state << " "
349  // << shutDown << " " << isLumi << std::endl;
350  // std::cout << "resource ids " << fuResourceId << " " << buResourceId << std::endl;
351 
352  if (shutDown) {
353  LOG4CPLUS_INFO(log_,"nbClientsToShutDown = "<<nbClientsToShutDown_);
355  if (nbClientsToShutDown_==0) {
356  LOG4CPLUS_INFO(log_,"Don't reschedule discard-workloop.");
357  isActive_ =false;
358  reschedule=false;
359  }
360  }
361 
362  shmBuffer_->discardRawCell(cell);
363 
364  if (!shutDown && !isLumi) {
365  resources_[fuResourceId]->release();
366  lock();
367  freeResourceIds_.push(fuResourceId);
368  assert(freeResourceIds_.size()<=resources_.size());
369  unlock();
370 
371  if (!isHalting_) {
372  sendDiscard(buResourceId);
374  }
375  }
376 
377  if (!reschedule) {
378  std::cout << " entered shutdown cycle " << std::endl;
380  UInt_t count=0;
381  while (count<100) {
382  std::cout << " shutdown cycle " <<shmBuffer_->nClients() << " "
383  << FUShmBuffer::shm_nattch(shmBuffer_->shmid()) << std::endl;
384  if (shmBuffer_->nClients()==0&&
386  // isReadyToShutDown_ = true;
387  break;
388  }
389  else {
390  count++;
391  std::cout << " shutdown cycle attempt " << count << std::endl;
392  LOG4CPLUS_DEBUG(log_,"FUResourceTable: Wait for all clients to detach,"
393  <<" nClients="<<shmBuffer_->nClients()
394  <<" nattch="<<FUShmBuffer::shm_nattch(shmBuffer_->shmid())
395  <<" ("<<count<<")");
396  ::usleep(shutdownTimeout_);
397  if(count*shutdownTimeout_ > 10000000)
398  LOG4CPLUS_WARN(log_,"FUResourceTable:LONG Wait (>10s) for all clients to detach,"
399  <<" nClients="<<shmBuffer_->nClients()
400  <<" nattch="<<FUShmBuffer::shm_nattch(shmBuffer_->shmid())
401  <<" ("<<count<<")");
402 
403  }
404  }
405  bool allEmpty = false;
406  std::cout << "Checking if all dqm cells are empty " << std::endl;
407  while(!allEmpty){
409  allEmpty = true;
410  shmBuffer_->lock();
411  for (UInt_t i=0;i<n;i++) {
413  if(state!=dqm::EMPTY) allEmpty = false;
414  }
415  shmBuffer_->unlock();
416  }
417  std::cout << "Making sure there are no dqm pending discards " << std::endl;
418  if(nbPendingSMDqmDiscards_ != 0)
419  {
420  LOG4CPLUS_WARN(log_,"FUResourceTable: pending DQM discards not zero: ="
421  << nbPendingSMDqmDiscards_ << " while cells are all empty. This may cause problems at next start ");
422 
423  }
425  isReadyToShutDown_ = true; // moved here from within the first while loop to make sure the
426  // sendDqm loop has been shut down as well
427  }
428 
429  return reschedule;
430 }
FUShmRawCell * rawCellToDiscard()
Definition: FUShmBuffer.cc:352
int i
Definition: DBlmapReader.cc:9
static int shm_nattch(int shmid)
int shmid() const
Definition: FUShmBuffer.h:67
std::queue< UInt_t > freeResourceIds_
evt::State_t evtState(unsigned int index)
void sendDiscard(UInt_t buResourceId)
void writeRecoEmptyEvent()
Definition: FUShmBuffer.cc:564
FUShmBuffer * shmBuffer_
void discardRawCell(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:456
unsigned int nClients() const
Definition: FUShmBuffer.h:69
dqm::State_t dqmState(unsigned int index)
unsigned int UInt_t
Definition: FUTypes.h:12
void writeDqmEmptyEvent()
Definition: FUShmBuffer.cc:577
char state
Definition: procUtils.cc:75
unsigned int index() const
Definition: FUShmRawCell.h:22
unsigned int shutdownTimeout_
unsigned int fuResourceId() const
Definition: FUShmRawCell.h:23
log4cplus::Logger log_
tuple cout
Definition: gather_cfg.py:41
unsigned int buResourceId() const
Definition: FUShmRawCell.h:24
FUResourceVec_t resources_
bool FUResourceTable::discardDataEvent ( MemRef_t bufRef)

Definition at line 523 of file FUResourceTable.cc.

References CommonMethods::lock(), runTheMatrix::msg, and _I2O_FU_DATA_DISCARD_MESSAGE_FRAME::rbBufferID.

Referenced by evf::FUResourceBroker::I2O_FU_DATA_DISCARD_Callback().

524 {
526  msg=(I2O_FU_DATA_DISCARD_MESSAGE_FRAME*)bufRef->getDataLocation();
527  UInt_t recoIndex=msg->rbBufferID;
528 
529  if (acceptSMDataDiscard_[recoIndex]) {
530  lock();
532  unlock();
533  acceptSMDataDiscard_[recoIndex] = false;
534 
535  if (!isHalting_) {
536  shmBuffer_->discardRecoCell(recoIndex);
537  bufRef->release();
538  }
539  }
540  else {
541  LOG4CPLUS_ERROR(log_,"Spurious DATA discard by StorageManager, skip!");
542  }
543 
544  if (isHalting_) {
545  bufRef->release();
546  return false;
547  }
548 
549  return true;
550 }
void discardRecoCell(unsigned int iCell)
Definition: FUShmBuffer.cc:464
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
log4cplus::Logger log_
bool FUResourceTable::discardDqmEvent ( MemRef_t bufRef)

Definition at line 554 of file FUResourceTable.cc.

References runTheMatrix::msg, _I2O_FU_DQM_DISCARD_MESSAGE_FRAME::rbBufferID, and evf::dqm::SENT.

Referenced by evf::FUResourceBroker::I2O_FU_DQM_DISCARD_Callback().

555 {
557  msg=(I2O_FU_DQM_DISCARD_MESSAGE_FRAME*)bufRef->getDataLocation();
558  UInt_t dqmIndex=msg->rbBufferID;
559  unsigned int ntries = 0;
560  while(shmBuffer_->dqmState(dqmIndex)!=dqm::SENT){
561  LOG4CPLUS_WARN(log_,"DQM discard for cell "<< dqmIndex << " which is not yer in SENT state - waiting");
562  ::usleep(10000);
563  if(ntries++>10){
564  LOG4CPLUS_ERROR(log_,"DQM cell " << dqmIndex
565  << " discard timed out while cell still in state " << shmBuffer_->dqmState(dqmIndex) );
566  bufRef->release();
567  return true;
568  }
569  }
570  if (acceptSMDqmDiscard_[dqmIndex]>0) {
571  acceptSMDqmDiscard_[dqmIndex]--;
574  }
575  else {
576  LOG4CPLUS_WARN(log_,"Spurious??? DQM discard by StorageManager, index " << dqmIndex
577  << " cell state " << shmBuffer_->dqmState(dqmIndex) << " accept flag " << acceptSMDqmDiscard_[dqmIndex];);
578  }
579 
580  if (!isHalting_) {
581  shmBuffer_->discardDqmCell(dqmIndex);
582  bufRef->release();
583  }
584 
585  }
586  else {
587  LOG4CPLUS_ERROR(log_,"Spurious DQM discard for cell " << dqmIndex
588  << " from StorageManager while cell is not accepting discards");
589  }
590 
591  if (isHalting_) {
592  bufRef->release();
593  return false;
594  }
595 
596  return true;
597 }
void discardDqmCell(unsigned int iCell)
Definition: FUShmBuffer.cc:491
FUShmBuffer * shmBuffer_
dqm::State_t dqmState(unsigned int index)
unsigned int UInt_t
Definition: FUTypes.h:12
log4cplus::Logger log_
vector< string > FUResourceTable::dqmCellStates ( ) const

Definition at line 811 of file FUResourceTable.cc.

References evf::dqm::DISCARDING, evf::dqm::EMPTY, i, n, query::result, evf::dqm::SENDING, evf::dqm::SENT, evf::utils::state, evf::dqm::WRITING, and evf::dqm::WRITTEN.

812 {
813  vector<string> result;
814  if (0!=shmBuffer_) {
816  shmBuffer_->lock();
817  for (UInt_t i=0;i<n;i++) {
819  if (state==dqm::EMPTY) result.push_back("EMPTY");
820  else if (state==dqm::WRITING) result.push_back("WRITING");
821  else if (state==dqm::WRITTEN) result.push_back("WRITTEN");
822  else if (state==dqm::SENDING) result.push_back("SENDING");
823  else if (state==dqm::SENT) result.push_back("SENT");
824  else if (state==dqm::DISCARDING) result.push_back("DISCARDING");
825  }
826  shmBuffer_->unlock();
827  }
828  return result;
829 }
int i
Definition: DBlmapReader.cc:9
FUShmBuffer * shmBuffer_
tuple result
Definition: query.py:137
dqm::State_t dqmState(unsigned int index)
unsigned int UInt_t
Definition: FUTypes.h:12
char state
Definition: procUtils.cc:75
void FUResourceTable::dropEvent ( )

Definition at line 614 of file FUResourceTable.cc.

References evf::FUShmRawCell::fuResourceId().

Referenced by evf::FUResourceBroker::I2O_FU_TAKE_Callback().

615 {
617  UInt_t fuResourceId=cell->fuResourceId();
619  shmBuffer_->scheduleRawCellForDiscard(fuResourceId);
620 }
FUShmRawCell * rawCellToRead()
Definition: FUShmBuffer.cc:304
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned int fuResourceId() const
Definition: FUShmRawCell.h:23
void finishReadingRawCell(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:385
void scheduleRawCellForDiscard(unsigned int iCell)
Definition: FUShmBuffer.cc:420
void FUResourceTable::dumpEvent ( evf::FUShmRawCell cell)

Definition at line 643 of file FUResourceTable.cc.

References evf::FUShmRawCell::evtNumber(), evf::FUShmRawCell::fedAddr(), evf::FUShmRawCell::fedSize(), makeHLTPrescaleTable::fout, i, j, and evf::FUShmRawCell::nFed().

644 {
645  ostringstream oss; oss<<"/tmp/evt"<<cell->evtNumber()<<".dump";
646  ofstream fout(oss.str().c_str());
647  fout.fill('0');
648 
649  fout<<"#\n# evt "<<cell->evtNumber()<<"\n#\n"<<endl;
650  for (unsigned int i=0;i<cell->nFed();i++) {
651  if (cell->fedSize(i)==0) continue;
652  fout<<"# fedid "<<i<<endl;
653  unsigned char* addr=cell->fedAddr(i);
654  for (unsigned int j=0;j<cell->fedSize(i);j++) {
655  fout<<setiosflags(ios::right)<<setw(2)<<hex<<(int)(*addr)<<dec;
656  if ((j+1)%8) fout<<" "; else fout<<endl;
657  ++addr;
658  }
659  fout<<endl;
660  }
661  fout.close();
662 }
int i
Definition: DBlmapReader.cc:9
unsigned int evtNumber() const
Definition: FUShmRawCell.h:25
int j
Definition: DBlmapReader.cc:9
unsigned char * fedAddr(unsigned int i) const
Definition: FUShmRawCell.cc:94
unsigned int nFed() const
Definition: FUShmRawCell.h:30
unsigned int fedSize(unsigned int i) const
Definition: FUShmRawCell.cc:82
void FUResourceTable::halt ( )

Definition at line 674 of file FUResourceTable.cc.

Referenced by evf::FUResourceBroker::halting().

675 {
676  isHalting_=true;
677  shutDownClients();
678 }
bool FUResourceTable::handleCrashedEP ( UInt_t  runNumber,
pid_t  pid 
)

Definition at line 624 of file FUResourceTable.cc.

References i.

Referenced by evf::FUResourceBroker::emergencyStop(), and evf::FUResourceBroker::watching().

625 {
626  bool retval = false;
627  vector<pid_t> pids=cellPrcIds();
628  UInt_t iRawCell=pids.size();
629  for (UInt_t i=0;i<pids.size();i++) { if (pid==pids[i]) { iRawCell=i; break; } }
630 
631  if (iRawCell<pids.size()){
633  retval = true;
634  }
635  else
636  LOG4CPLUS_WARN(log_,"No raw data to send to error stream for process " << pid);
638  return retval;
639 }
int i
Definition: DBlmapReader.cc:9
bool removeClientPrcId(pid_t prcId)
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
std::vector< pid_t > cellPrcIds() const
log4cplus::Logger log_
bool writeErrorEventData(unsigned int runNumber, unsigned int fuProcessId, unsigned int iRawCell)
Definition: FUShmBuffer.cc:693
void FUResourceTable::initialize ( bool  segmentationMode,
UInt_t  nbRawCells,
UInt_t  nbRecoCells,
UInt_t  nbDqmCells,
UInt_t  rawCellSize,
UInt_t  recoCellSize,
UInt_t  dqmCellSize 
)
throw (evf::Exception
)

Definition at line 111 of file FUResourceTable.cc.

References evf::FUShmBuffer::createShmBuffer(), i, and runTheMatrix::msg.

119 {
120  clear();
121 
122  shmBuffer_=FUShmBuffer::createShmBuffer(segmentationMode,
123  nbRawCells,nbRecoCells,nbDqmCells,
124  rawCellSize,recoCellSize,dqmCellSize);
125  if (0==shmBuffer_) {
126  string msg = "CREATION OF SHARED MEMORY SEGMENT FAILED!";
127  LOG4CPLUS_FATAL(log_,msg);
128  XCEPT_RAISE(evf::Exception,msg);
129  }
130 
131  for (UInt_t i=0;i<nbRawCells_;i++) {
132  resources_.push_back(new FUResource(i,log_,frb_,app_));
133  freeResourceIds_.push(i);
134  }
135 
136  acceptSMDataDiscard_ = new bool[nbRecoCells];
137  acceptSMDqmDiscard_ = new int[nbDqmCells];
138 
139  resetCounters();
140 }
int i
Definition: DBlmapReader.cc:9
std::queue< UInt_t > freeResourceIds_
xdaq::Application * app_
FUShmBuffer * shmBuffer_
EvffedFillerRB * frb_
static FUShmBuffer * createShmBuffer(bool semgmentationMode, unsigned int nRawCells, unsigned int nRecoCells, unsigned int nDqmCells, unsigned int rawCellSize=0x400000, unsigned int recoCellSize=0x400000, unsigned int dqmCellSize=0x400000)
Definition: FUShmBuffer.cc:844
unsigned int UInt_t
Definition: FUTypes.h:12
log4cplus::Logger log_
FUResourceVec_t resources_
void FUResourceTable::injectCRCError ( )

Definition at line 1036 of file FUResourceTable.cc.

References i.

1037 {
1038  for (UInt_t i=0;i<resources_.size();i++) {
1039  resources_[i]->scheduleCRCError();
1040  }
1041 }
int i
Definition: DBlmapReader.cc:9
unsigned int UInt_t
Definition: FUTypes.h:12
FUResourceVec_t resources_
bool evf::FUResourceTable::isActive ( ) const
inline

Definition at line 116 of file FUResourceTable.h.

References isActive_.

Referenced by evf::FUResourceBroker::halting().

116 { return isActive_; }
bool FUResourceTable::isLastMessageOfEvent ( MemRef_t bufRef)

Definition at line 1020 of file FUResourceTable.cc.

References Association::block.

1021 {
1022  while (0!=bufRef->getNextReference()) bufRef=bufRef->getNextReference();
1023 
1024  I2O_EVENT_DATA_BLOCK_MESSAGE_FRAME *block=
1025  (I2O_EVENT_DATA_BLOCK_MESSAGE_FRAME*)bufRef->getDataLocation();
1026 
1027  UInt_t iBlock =block->blockNb;
1028  UInt_t nBlock =block->nbBlocksInSuperFragment;
1029  UInt_t iSuperFrag=block->superFragmentNb;
1030  UInt_t nSuperFrag=block->nbSuperFragmentsInEvent;
1031 
1032  return ((iSuperFrag==nSuperFrag-1)&&(iBlock==nBlock-1));
1033 }
block
Formating index page&#39;s pieces.
Definition: Association.py:187
unsigned int UInt_t
Definition: FUTypes.h:12
bool evf::FUResourceTable::isReadyToShutDown ( ) const
inline
void FUResourceTable::lastResort ( )

Definition at line 1057 of file FUResourceTable.cc.

References gather_cfg::cout.

Referenced by evf::FUResourceBroker::emergencyStop().

1058 {
1059  std::cout << "lastResort: " << shmBuffer_->nbRawCellsToRead()
1060  << " more rawcells to read " << std::endl;
1061  while(shmBuffer_->nbRawCellsToRead()!=0){
1063  std::cout << "lastResort: " << shmBuffer_->nbRawCellsToRead() << std::endl;
1065  std::cout << "lastResort: schedule raw cell for discard" << std::endl;
1066  }
1067 }
FUShmRawCell * rawCellToRead()
Definition: FUShmBuffer.cc:304
int nbRawCellsToRead() const
Definition: FUShmBuffer.cc:283
FUShmBuffer * shmBuffer_
tuple cout
Definition: gather_cfg.py:41
void scheduleRawEmptyCellForDiscardServerSide(FUShmRawCell *cell)
Definition: FUShmBuffer.cc:620
void evf::FUResourceTable::lock ( void  )
inline

Definition at line 198 of file FUResourceTable.h.

References lock_.

198 { lock_.take(); }
UInt_t evf::FUResourceTable::nbAllocated ( ) const
inline

Definition at line 124 of file FUResourceTable.h.

References nbAllocated_.

Referenced by evf::FUResourceBroker::actionPerformed().

124 { return nbAllocated_; }
UInt_t evf::FUResourceTable::nbAllocSent ( ) const
inline

Definition at line 137 of file FUResourceTable.h.

References nbAllocSent_.

Referenced by evf::FUResourceBroker::actionPerformed().

137 { return nbAllocSent_; }
UInt_t FUResourceTable::nbClients ( ) const

Definition at line 748 of file FUResourceTable.cc.

References query::result.

Referenced by evf::FUResourceBroker::actionPerformed().

749 {
750  UInt_t result(0);
752  return result;
753 }
FUShmBuffer * shmBuffer_
unsigned int nClients() const
Definition: FUShmBuffer.h:69
tuple result
Definition: query.py:137
unsigned int UInt_t
Definition: FUTypes.h:12
UInt_t evf::FUResourceTable::nbCompleted ( ) const
inline

Definition at line 126 of file FUResourceTable.h.

References nbCompleted_.

Referenced by evf::FUResourceBroker::actionPerformed().

126 { return nbCompleted_; }
UInt_t evf::FUResourceTable::nbCrcErrors ( ) const
inline

Definition at line 136 of file FUResourceTable.h.

References nbCrcErrors_.

Referenced by evf::FUResourceBroker::actionPerformed().

136 { return nbCrcErrors_; }
UInt_t evf::FUResourceTable::nbDiscarded ( ) const
inline

Definition at line 132 of file FUResourceTable.h.

References nbDiscarded_.

Referenced by evf::FUResourceBroker::actionPerformed().

132 { return nbDiscarded_; }
UInt_t evf::FUResourceTable::nbErrors ( ) const
inline

Definition at line 135 of file FUResourceTable.h.

References nbErrors_.

Referenced by evf::FUResourceBroker::actionPerformed().

135 { return nbErrors_; }
UInt_t evf::FUResourceTable::nbFreeSlots ( ) const
inline
UInt_t evf::FUResourceTable::nbLost ( ) const
inline

Definition at line 133 of file FUResourceTable.h.

References nbLost_.

Referenced by evf::FUResourceBroker::actionPerformed().

133 { return nbLost_; }
UInt_t evf::FUResourceTable::nbPending ( ) const
inline

Definition at line 125 of file FUResourceTable.h.

References nbPending_.

Referenced by evf::FUResourceBroker::actionPerformed().

125 { return nbPending_; }
UInt_t evf::FUResourceTable::nbPendingSMDiscards ( ) const
inline

Definition at line 130 of file FUResourceTable.h.

References nbPendingSMDiscards_.

Referenced by evf::FUResourceBroker::actionPerformed().

130 { return nbPendingSMDiscards_; }
UInt_t evf::FUResourceTable::nbPendingSMDqmDiscards ( ) const
inline

Definition at line 131 of file FUResourceTable.h.

References nbPendingSMDqmDiscards_.

Referenced by evf::FUResourceBroker::actionPerformed().

131 { return nbPendingSMDqmDiscards_; }
UInt_t evf::FUResourceTable::nbResources ( ) const
inline
UInt_t evf::FUResourceTable::nbSent ( ) const
inline

Definition at line 127 of file FUResourceTable.h.

References nbSent_.

Referenced by evf::FUResourceBroker::actionPerformed(), and evf::FUResourceBroker::monitoring().

127 { return nbSent_; }
UInt_t evf::FUResourceTable::nbSentDqm ( ) const
inline

Definition at line 129 of file FUResourceTable.h.

References nbSentDqm_.

Referenced by evf::FUResourceBroker::actionPerformed().

129 { return nbSentDqm_; }
UInt_t evf::FUResourceTable::nbSentError ( ) const
inline

Definition at line 128 of file FUResourceTable.h.

References nbSentError_.

Referenced by evf::FUResourceBroker::actionPerformed().

128 { return nbSentError_; }
void FUResourceTable::postEndOfLumiSection ( MemRef_t bufRef)

Definition at line 601 of file FUResourceTable.cc.

References i, and runTheMatrix::msg.

Referenced by evf::FUResourceBroker::I2O_EVM_LUMISECTION_Callback().

602 {
603  I2O_EVM_END_OF_LUMISECTION_MESSAGE_FRAME *msg =
604  (I2O_EVM_END_OF_LUMISECTION_MESSAGE_FRAME *)bufRef->getDataLocation();
605  //make sure to fill up the shmem so no process will miss it
606  // but processes will have to handle duplicates
607 
608  for(unsigned int i = 0; i < nbRawCells_; i++)
609  shmBuffer_->writeRawLumiSectionEvent(msg->lumiSection);
610 }
int i
Definition: DBlmapReader.cc:9
void writeRawLumiSectionEvent(unsigned int)
Definition: FUShmBuffer.cc:550
FUShmBuffer * shmBuffer_
void FUResourceTable::printWorkLoopStatus ( )

Definition at line 1042 of file FUResourceTable.cc.

References gather_cfg::cout.

Referenced by evf::FUResourceBroker::emergencyStop().

1043 {
1044  std::cout << "Workloop status===============" << std::endl;
1045  std::cout << "==============================" << std::endl;
1046  if(wlSendData_!=0)
1047  std::cout << "SendData -> " << wlSendData_->isActive() << std::endl;
1048  if(wlSendDqm_!=0)
1049  std::cout << "SendDqm -> " << wlSendDqm_->isActive() << std::endl;
1050  if(wlDiscard_!=0)
1051  std::cout << "Discard -> " << wlDiscard_->isActive() << std::endl;
1052  std::cout << "Workloops Active -> " << isActive_ << std::endl;
1053 
1054 }
WorkLoop_t * wlSendData_
tuple cout
Definition: gather_cfg.py:41
void FUResourceTable::resetCounters ( )

Definition at line 720 of file FUResourceTable.cc.

References i.

Referenced by evf::FUResourceBroker::enabling().

721 {
722  if (0!=shmBuffer_) {
723  for (UInt_t i=0;i<shmBuffer_->nRecoCells();i++) acceptSMDataDiscard_[i]= false;
724  for (UInt_t i=0;i<shmBuffer_->nDqmCells();i++) acceptSMDqmDiscard_[i] = 0;
725  }
726 
728  nbCompleted_ =0;
729  nbSent_ =0;
730  nbSentError_ =0;
731  nbSentDqm_ =0;
734  nbDiscarded_ =0;
735  nbLost_ =0;
736 
737  nbErrors_ =0;
738  nbCrcErrors_ =0;
739  nbAllocSent_ =0;
740 
741  sumOfSquares_ =0;
742  sumOfSizes_ =0;
743  isStopping_ =false;
744 }
int i
Definition: DBlmapReader.cc:9
unsigned int nRecoCells() const
Definition: FUShmBuffer.h:64
FUShmBuffer * shmBuffer_
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned int nDqmCells() const
Definition: FUShmBuffer.h:65
void FUResourceTable::sendAllocate ( )

Definition at line 879 of file FUResourceTable.cc.

References i.

Referenced by evf::FUResourceBroker::enabling().

880 {
881  UInt_t nbFreeSlots = this->nbFreeSlots();
882  UInt_t nbFreeSlotsMax = resources_.size()/2;
883  if (nbFreeSlots>nbFreeSlotsMax) {
884  UIntVec_t fuResourceIds;
885  for (UInt_t i=0;i<nbFreeSlots;i++)
886  fuResourceIds.push_back(allocateResource());
887  bu_->sendAllocate(fuResourceIds);
888  nbAllocSent_++;
889  }
890 }
UInt_t nbFreeSlots() const
int i
Definition: DBlmapReader.cc:9
std::vector< UInt_t > UIntVec_t
Definition: FUTypes.h:15
void sendAllocate(const UIntVec_t &fuResourceIds)
Definition: BUProxy.cc:60
unsigned int UInt_t
Definition: FUTypes.h:12
FUResourceVec_t resources_
bool FUResourceTable::sendData ( toolbox::task::WorkLoop *  workLoop)

Definition at line 161 of file FUResourceTable.cc.

References ExpressReco_HICollisions_FallBack::e, evf::FUShmRecoCell::eventSize(), evf::FUShmRecoCell::evtNumber(), edm::hlt::Exception, evf::FUShmRecoCell::fuGuid(), evf::FUShmRecoCell::fuProcessId(), evf::FUShmRecoCell::index(), CommonMethods::lock(), evf::FUShmRecoCell::outModId(), evf::FUShmRecoCell::payloadAddr(), evf::FUShmRecoCell::rawCellIndex(), evf::FUShmRecoCell::runNumber(), sistrip::runNumber_, and evf::FUShmRecoCell::type().

Referenced by startSendDataWorkLoop().

162 {
163  bool reschedule=true;
164 
166 
167  if (0==cell->eventSize()) {
168  LOG4CPLUS_INFO(log_,"Don't reschedule sendData workloop.");
169  UInt_t cellIndex=cell->index();
171  shmBuffer_->discardRecoCell(cellIndex);
172  reschedule=false;
173  }
174  else if (isHalting_) {
175  LOG4CPLUS_INFO(log_,"sendData: isHalting, discard recoCell.");
176  UInt_t cellIndex=cell->index();
178  shmBuffer_->discardRecoCell(cellIndex);
179  }
180  else {
181  try {
182  if (cell->type()==0) {
183  UInt_t cellIndex = cell->index();
184  UInt_t cellOutModId = cell->outModId();
185  UInt_t cellFUProcId = cell->fuProcessId();
186  UInt_t cellFUGuid = cell->fuGuid();
187  UChar_t* cellPayloadAddr = cell->payloadAddr();
188  UInt_t cellEventSize = cell->eventSize();
190 
191  lock();
193  unlock();
194 
195  sendInitMessage(cellIndex,cellOutModId,cellFUProcId,cellFUGuid,
196  cellPayloadAddr,cellEventSize);
197  }
198  else if (cell->type()==1) {
199  UInt_t cellIndex = cell->index();
200  UInt_t cellRawIndex = cell->rawCellIndex();
201  UInt_t cellRunNumber = cell->runNumber();
202  UInt_t cellEvtNumber = cell->evtNumber();
203  UInt_t cellOutModId = cell->outModId();
204  UInt_t cellFUProcId = cell->fuProcessId();
205  UInt_t cellFUGuid = cell->fuGuid();
206  UChar_t *cellPayloadAddr = cell->payloadAddr();
207  UInt_t cellEventSize = cell->eventSize();
209 
210  lock();
212  resources_[cellRawIndex]->incNbSent();
213  if (resources_[cellRawIndex]->nbSent()==1) nbSent_++;
214  unlock();
215 
216  sendDataEvent(cellIndex,cellRunNumber,cellEvtNumber,cellOutModId,
217  cellFUProcId,cellFUGuid,cellPayloadAddr,cellEventSize);
218  }
219  else if (cell->type()==2) {
220  UInt_t cellIndex = cell->index();
221  UInt_t cellRawIndex = cell->rawCellIndex();
222  //UInt_t cellRunNumber = cell->runNumber();
223  UInt_t cellEvtNumber = cell->evtNumber();
224  UInt_t cellFUProcId = cell->fuProcessId();
225  UInt_t cellFUGuid = cell->fuGuid();
226  UChar_t *cellPayloadAddr = cell->payloadAddr();
227  UInt_t cellEventSize = cell->eventSize();
229 
230  lock();
232  resources_[cellRawIndex]->incNbSent();
233  if (resources_[cellRawIndex]->nbSent()==1) { nbSent_++; nbSentError_++; }
234  unlock();
235 
236  sendErrorEvent(cellIndex,runNumber_,cellEvtNumber,
237  cellFUProcId,cellFUGuid,cellPayloadAddr,cellEventSize);
238  }
239  else {
240  string errmsg="Unknown RecoCell type (neither INIT/DATA/ERROR).";
241  XCEPT_RAISE(evf::Exception,errmsg);
242  }
243  }
244  catch (xcept::Exception& e) {
245  LOG4CPLUS_FATAL(log_,"Failed to send EVENT DATA to StorageManager: "
246  <<xcept::stdformat_exception_history(e));
247  reschedule=false;
248  }
249  }
250 
251  return reschedule;
252 }
unsigned int index() const
Definition: FUShmRecoCell.h:22
void discardRecoCell(unsigned int iCell)
Definition: FUShmBuffer.cc:464
unsigned int type() const
Definition: FUShmRecoCell.h:29
unsigned int runNumber() const
Definition: FUShmRecoCell.h:24
unsigned int fuGuid() const
Definition: FUShmRecoCell.h:28
unsigned int eventSize() const
Definition: FUShmRecoCell.h:33
void sendErrorEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
unsigned int fuProcessId() const
Definition: FUShmRecoCell.h:27
FUShmBuffer * shmBuffer_
unsigned char * payloadAddr() const
void sendDataEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
unsigned int evtNumber() const
Definition: FUShmRecoCell.h:25
unsigned int rawCellIndex() const
Definition: FUShmRecoCell.h:23
unsigned char UChar_t
Definition: FUTypes.h:14
void finishReadingRecoCell(FUShmRecoCell *cell)
Definition: FUShmBuffer.cc:397
unsigned int UInt_t
Definition: FUTypes.h:12
UInt_t nbSent() const
unsigned int outModId() const
Definition: FUShmRecoCell.h:26
FUShmRecoCell * recoCellToRead()
Definition: FUShmBuffer.cc:323
log4cplus::Logger log_
FUResourceVec_t resources_
void sendInitMessage(UInt_t fuResourceId, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
void FUResourceTable::sendDataEvent ( UInt_t  fuResourceId,
UInt_t  runNumber,
UInt_t  evtNumber,
UInt_t  outModId,
UInt_t  fuProcessId,
UInt_t  fuGuid,
UChar_t data,
UInt_t  dataSize 
)

Definition at line 923 of file FUResourceTable.cc.

931 {
932  if (0==sm_) {
933  LOG4CPLUS_ERROR(log_,"No StorageManager, DROP DATA EVENT!");
934  }
935  else {
936  acceptSMDataDiscard_[fuResourceId] = true;
937  UInt_t nbBytes=sm_->sendDataEvent(fuResourceId,runNumber,evtNumber,
938  outModId,fuProcessId,fuGuid,
939  data,dataSize);
940  sumOfSquares_+=(uint64_t)nbBytes*(uint64_t)nbBytes;
941  sumOfSizes_ +=nbBytes;
942  }
943 }
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned long long uint64_t
Definition: Time.h:15
UInt_t sendDataEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
Definition: SMProxy.cc:110
log4cplus::Logger log_
void FUResourceTable::sendDiscard ( UInt_t  buResourceId)

Definition at line 894 of file FUResourceTable.cc.

895 {
896  bu_->sendDiscard(buResourceId);
897  nbDiscarded_++;
898 }
void sendDiscard(UInt_t buResourceId)
Definition: BUProxy.cc:121
bool FUResourceTable::sendDqm ( toolbox::task::WorkLoop *  workLoop)

Definition at line 272 of file FUResourceTable.cc.

References gather_cfg::cout, ExpressReco_HICollisions_FallBack::e, evf::dqm::EMPTY, evf::FUShmDqmCell::eventSize(), evf::FUShmDqmCell::evtAtUpdate(), edm::hlt::Exception, evf::FUShmDqmCell::folderId(), evf::FUShmDqmCell::fuGuid(), evf::FUShmDqmCell::fuProcessId(), evf::FUShmDqmCell::index(), evf::FUShmDqmCell::payloadAddr(), evf::FUShmDqmCell::runNumber(), and evf::utils::state.

Referenced by startSendDqmWorkLoop().

273 {
274  bool reschedule=true;
275 
278 
279  if (state==dqm::EMPTY) {
280  LOG4CPLUS_WARN(log_,"Don't reschedule sendDqm workloop.");
281  std::cout << "shut down dqm workloop " << std::endl;
282  UInt_t cellIndex=cell->index();
284  shmBuffer_->discardDqmCell(cellIndex);
285  reschedule=false;
286  }
287  else if (isHalting_) {
288  UInt_t cellIndex=cell->index();
290  shmBuffer_->discardDqmCell(cellIndex);
291  }
292  else {
293  try {
294  UInt_t cellIndex = cell->index();
295  UInt_t cellRunNumber = cell->runNumber();
296  UInt_t cellEvtAtUpdate = cell->evtAtUpdate();
297  UInt_t cellFolderId = cell->folderId();
298  UInt_t cellFUProcId = cell->fuProcessId();
299  UInt_t cellFUGuid = cell->fuGuid();
300  UChar_t *cellPayloadAddr = cell->payloadAddr();
301  UInt_t cellEventSize = cell->eventSize();
302  sendDqmEvent(cellIndex,cellRunNumber,cellEvtAtUpdate,cellFolderId,
303  cellFUProcId,cellFUGuid,cellPayloadAddr,cellEventSize);
305  }
306  catch (xcept::Exception& e) {
307  LOG4CPLUS_FATAL(log_,"Failed to send DQM DATA to StorageManager: "
308  <<xcept::stdformat_exception_history(e));
309  reschedule=false;
310  }
311  }
312 
313  return reschedule;
314 }
unsigned int fuGuid() const
Definition: FUShmDqmCell.h:27
unsigned int index() const
Definition: FUShmDqmCell.h:22
unsigned int folderId() const
Definition: FUShmDqmCell.h:25
unsigned int evtAtUpdate() const
Definition: FUShmDqmCell.h:24
FUShmDqmCell * dqmCellToRead()
Definition: FUShmBuffer.cc:339
void discardDqmCell(unsigned int iCell)
Definition: FUShmBuffer.cc:491
FUShmBuffer * shmBuffer_
unsigned int fuProcessId() const
Definition: FUShmDqmCell.h:26
unsigned int runNumber() const
Definition: FUShmDqmCell.h:23
unsigned char UChar_t
Definition: FUTypes.h:14
void finishReadingDqmCell(FUShmDqmCell *cell)
Definition: FUShmBuffer.cc:410
dqm::State_t dqmState(unsigned int index)
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned char * payloadAddr() const
Definition: FUShmDqmCell.cc:54
unsigned int eventSize() const
Definition: FUShmDqmCell.h:31
char state
Definition: procUtils.cc:75
log4cplus::Logger log_
tuple cout
Definition: gather_cfg.py:41
void sendDqmEvent(UInt_t fuDqmId, UInt_t runNumber, UInt_t evtAtUpdate, UInt_t folderId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
void FUResourceTable::sendDqmEvent ( UInt_t  fuDqmId,
UInt_t  runNumber,
UInt_t  evtAtUpdate,
UInt_t  folderId,
UInt_t  fuProcessId,
UInt_t  fuGuid,
UChar_t data,
UInt_t  dataSize 
)

Definition at line 992 of file FUResourceTable.cc.

1000 {
1001  if (0==sm_) {
1002  LOG4CPLUS_WARN(log_,"No StorageManager, DROP DQM EVENT.");
1003  }
1004  else {
1005  sm_->sendDqmEvent(fuDqmId,runNumber,evtAtUpdate,folderId,
1006  fuProcessId,fuGuid,data,dataSize);
1007 
1009 
1010  acceptSMDqmDiscard_[fuDqmId]++;
1011  if(acceptSMDqmDiscard_[fuDqmId]>1)
1012  LOG4CPLUS_WARN(log_,"DQM Cell " << fuDqmId << " being sent more than once for folder "
1013  << folderId << " process " << fuProcessId << " guid " << fuGuid);
1014  nbSentDqm_++;
1015  }
1016 }
UInt_t sendDqmEvent(UInt_t fuDqmId, UInt_t runNumber, UInt_t evtAtUpdate, UInt_t folderId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
Definition: SMProxy.cc:197
log4cplus::Logger log_
void FUResourceTable::sendErrorEvent ( UInt_t  fuResourceId,
UInt_t  runNumber,
UInt_t  evtNumber,
UInt_t  fuProcessId,
UInt_t  fuGuid,
UChar_t data,
UInt_t  dataSize 
)

Definition at line 947 of file FUResourceTable.cc.

954 {
955  if (0==sm_) {
956  LOG4CPLUS_ERROR(log_,"No StorageManager, DROP ERROR EVENT!");
957  }
958  else {
959  acceptSMDataDiscard_[fuResourceId] = true;
960  UInt_t nbBytes=sm_->sendErrorEvent(fuResourceId,runNumber,evtNumber,
961  fuProcessId,fuGuid,data,dataSize);
962  sumOfSquares_+=(uint64_t)nbBytes*(uint64_t)nbBytes;
963  sumOfSizes_ +=nbBytes;
964  }
965 
966 // if (0!=shmBuffer_) {
967 // UInt_t n=nbDqmCells_;
968 
969 // for (UInt_t i=0;i<n;i++) {
970 // if(shmBuffer_->dqmCell(i)->fuProcessId()==fuProcessId)
971 // {
972 // if(shmBuffer_->dqmState(i)!=dqm::SENT){
973 // shmBuffer_->setDqmState(i,dqm::SENT);
974 // shmBuffer_->discardDqmCell(i);
975 // acceptSMDqmDiscard_[i] = false;
976 // }
977 // }
978 // }
979 // n=nbRecoCells_;
980 // for (UInt_t i=0;i<n;i++) {
981 // if(shmBuffer_->recoCell(i)->fuProcessId()==fuProcessId)
982 // {
983 // shmBuffer_->discardOrphanedRecoCell(i);
984 // }
985 // }
986 
987 // }
988 }
UInt_t sendErrorEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
Definition: SMProxy.cc:154
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned long long uint64_t
Definition: Time.h:15
log4cplus::Logger log_
void FUResourceTable::sendInitMessage ( UInt_t  fuResourceId,
UInt_t  outModId,
UInt_t  fuProcessId,
UInt_t  fuGuid,
UChar_t data,
UInt_t  dataSize 
)

Definition at line 902 of file FUResourceTable.cc.

908 {
909  if (0==sm_) {
910  LOG4CPLUS_ERROR(log_,"No StorageManager, DROP INIT MESSAGE!");
911  }
912  else {
913  acceptSMDataDiscard_[fuResourceId] = true;
914  UInt_t nbBytes=sm_->sendInitMessage(fuResourceId,outModId,fuProcessId,
915  fuGuid,data,dataSize);
916  sumOfSquares_+=(uint64_t)nbBytes*(uint64_t)nbBytes;
917  sumOfSizes_ +=nbBytes;
918  }
919 }
unsigned int UInt_t
Definition: FUTypes.h:12
unsigned long long uint64_t
Definition: Time.h:15
UInt_t sendInitMessage(UInt_t fuResourceId, UInt_t outModId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
Definition: SMProxy.cc:71
log4cplus::Logger log_
void evf::FUResourceTable::setDoCrcCheck ( UInt_t  doCrcCheck)
inline
void evf::FUResourceTable::setDoDumpEvents ( UInt_t  doDumpEvents)
inline
void evf::FUResourceTable::setRunNumber ( UInt_t  runNumber)
inline
void FUResourceTable::shutDownClients ( )

Definition at line 682 of file FUResourceTable.cc.

References evf::evt::EMPTY, i, n, and evf::utils::state.

683 {
685  isReadyToShutDown_ = false;
686 
687  if (nbClientsToShutDown_==0) {
688  LOG4CPLUS_INFO(log_,"No clients to shut down. Checking if there are raw cells not assigned to any process yet");
689  UInt_t n=nbResources();
690  for (UInt_t i=0;i<n;i++) {
692  if (state!=evt::EMPTY){
693  LOG4CPLUS_WARN(log_,"Schedule discard at STOP for orphaned event in state "
694  << state);
696  }
697  }
699  }
700  else {
702  for (UInt_t i=0;i<n;++i) shmBuffer_->writeRawEmptyEvent();
703  }
704 }
int i
Definition: DBlmapReader.cc:9
void scheduleRawCellForDiscardServerSide(unsigned int iCell)
Definition: FUShmBuffer.cc:440
evt::State_t evtState(unsigned int index)
UInt_t nbClients() const
FUShmBuffer * shmBuffer_
void writeRawEmptyEvent()
Definition: FUShmBuffer.cc:538
UInt_t nbResources() const
void scheduleRawEmptyCellForDiscard()
Definition: FUShmBuffer.cc:590
unsigned int UInt_t
Definition: FUTypes.h:12
char state
Definition: procUtils.cc:75
log4cplus::Logger log_
void FUResourceTable::startDiscardWorkLoop ( )
throw (evf::Exception
)

Definition at line 318 of file FUResourceTable.cc.

References discard(), ExpressReco_HICollisions_FallBack::e, edm::hlt::Exception, and runTheMatrix::msg.

Referenced by evf::FUResourceBroker::enabling().

319 {
320  try {
321  LOG4CPLUS_INFO(log_,"Start 'discard' workloop.");
322  wlDiscard_=toolbox::task::getWorkLoopFactory()->getWorkLoop("Discard","waiting");
323  if (!wlDiscard_->isActive()) wlDiscard_->activate();
324  asDiscard_=toolbox::task::bind(this,&FUResourceTable::discard,"Discard");
325  wlDiscard_->submit(asDiscard_);
326  isActive_=true;
327  }
328  catch (xcept::Exception& e) {
329  string msg = "Failed to start workloop 'Discard'.";
330  XCEPT_RETHROW(evf::Exception,msg,e);
331  }
332  isReadyToShutDown_=false;
333 }
ActionSignature_t * asDiscard_
bool discard(toolbox::task::WorkLoop *workLoop)
log4cplus::Logger log_
void FUResourceTable::startSendDataWorkLoop ( )
throw (evf::Exception
)

Definition at line 144 of file FUResourceTable.cc.

References ExpressReco_HICollisions_FallBack::e, edm::hlt::Exception, runTheMatrix::msg, and sendData().

Referenced by evf::FUResourceBroker::enabling().

145 {
146  try {
147  wlSendData_=
148  toolbox::task::getWorkLoopFactory()->getWorkLoop("SendData","waiting");
149  if (!wlSendData_->isActive()) wlSendData_->activate();
150  asSendData_=toolbox::task::bind(this,&FUResourceTable::sendData,"SendData");
151  wlSendData_->submit(asSendData_);
152  }
153  catch (xcept::Exception& e) {
154  string msg = "Failed to start workloop 'SendData'.";
155  XCEPT_RETHROW(evf::Exception,msg,e);
156  }
157 }
bool sendData(toolbox::task::WorkLoop *workLoop)
WorkLoop_t * wlSendData_
ActionSignature_t * asSendData_
void FUResourceTable::startSendDqmWorkLoop ( )
throw (evf::Exception
)

Definition at line 256 of file FUResourceTable.cc.

References ExpressReco_HICollisions_FallBack::e, edm::hlt::Exception, runTheMatrix::msg, and sendDqm().

Referenced by evf::FUResourceBroker::enabling().

257 {
258  try {
259  wlSendDqm_=toolbox::task::getWorkLoopFactory()->getWorkLoop("SendDqm","waiting");
260  if (!wlSendDqm_->isActive()) wlSendDqm_->activate();
261  asSendDqm_=toolbox::task::bind(this,&FUResourceTable::sendDqm,"SendDqm");
262  wlSendDqm_->submit(asSendDqm_);
263  }
264  catch (xcept::Exception& e) {
265  string msg = "Failed to start workloop 'SendDqm'.";
266  XCEPT_RETHROW(evf::Exception,msg,e);
267  }
268 }
bool sendDqm(toolbox::task::WorkLoop *workLoop)
ActionSignature_t * asSendDqm_
void FUResourceTable::stop ( )

Definition at line 666 of file FUResourceTable.cc.

Referenced by evf::FUResourceBroker::stopping().

667 {
668  isStopping_ = true;
669  shutDownClients();
670 }
UInt_t evf::FUResourceTable::sumOfSizes ( ) const
inline

Definition at line 140 of file FUResourceTable.h.

References sumOfSizes_.

Referenced by evf::FUResourceBroker::monitoring().

140 { return sumOfSizes_; }
uint64_t evf::FUResourceTable::sumOfSquares ( ) const
inline

Definition at line 139 of file FUResourceTable.h.

References sumOfSquares_.

Referenced by evf::FUResourceBroker::monitoring().

139 { return sumOfSquares_; }
void evf::FUResourceTable::unlock ( void  )
inline

Definition at line 199 of file FUResourceTable.h.

References lock_.

199 { lock_.give(); }

Member Data Documentation

bool* evf::FUResourceTable::acceptSMDataDiscard_
private

Definition at line 234 of file FUResourceTable.h.

int* evf::FUResourceTable::acceptSMDqmDiscard_
private

Definition at line 235 of file FUResourceTable.h.

xdaq::Application* evf::FUResourceTable::app_
private

Definition at line 269 of file FUResourceTable.h.

ActionSignature_t* evf::FUResourceTable::asDiscard_
private

Definition at line 225 of file FUResourceTable.h.

ActionSignature_t* evf::FUResourceTable::asSendData_
private

Definition at line 219 of file FUResourceTable.h.

ActionSignature_t* evf::FUResourceTable::asSendDqm_
private

Definition at line 222 of file FUResourceTable.h.

BUProxy* evf::FUResourceTable::bu_
private

Definition at line 213 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::doCrcCheck_
private

Definition at line 237 of file FUResourceTable.h.

Referenced by setDoCrcCheck().

UInt_t evf::FUResourceTable::doDumpEvents_
private

Definition at line 238 of file FUResourceTable.h.

Referenced by setDoDumpEvents().

EvffedFillerRB* evf::FUResourceTable::frb_
private

Definition at line 268 of file FUResourceTable.h.

std::queue<UInt_t> evf::FUResourceTable::freeResourceIds_
private

Definition at line 232 of file FUResourceTable.h.

Referenced by nbFreeSlots().

bool evf::FUResourceTable::isActive_
private

Definition at line 254 of file FUResourceTable.h.

Referenced by isActive().

bool evf::FUResourceTable::isHalting_
private

Definition at line 255 of file FUResourceTable.h.

bool evf::FUResourceTable::isReadyToShutDown_
private

Definition at line 253 of file FUResourceTable.h.

Referenced by isReadyToShutDown().

bool evf::FUResourceTable::isStopping_
private

Definition at line 256 of file FUResourceTable.h.

toolbox::BSem evf::FUResourceTable::lock_
private

Definition at line 267 of file FUResourceTable.h.

Referenced by lock(), and unlock().

log4cplus::Logger evf::FUResourceTable::log_
private

Definition at line 216 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbAllocated_
private

Definition at line 241 of file FUResourceTable.h.

Referenced by nbAllocated().

UInt_t evf::FUResourceTable::nbAllocSent_
private

Definition at line 260 of file FUResourceTable.h.

Referenced by nbAllocSent().

UInt_t evf::FUResourceTable::nbClientsToShutDown_
private

Definition at line 252 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbCompleted_
private

Definition at line 243 of file FUResourceTable.h.

Referenced by nbCompleted().

UInt_t evf::FUResourceTable::nbCrcErrors_
private

Definition at line 259 of file FUResourceTable.h.

Referenced by nbCrcErrors().

UInt_t evf::FUResourceTable::nbDiscarded_
private

Definition at line 249 of file FUResourceTable.h.

Referenced by nbDiscarded().

UInt_t evf::FUResourceTable::nbDqmCells_
private

Definition at line 229 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbErrors_
private

Definition at line 258 of file FUResourceTable.h.

Referenced by nbErrors().

UInt_t evf::FUResourceTable::nbLost_
private

Definition at line 250 of file FUResourceTable.h.

Referenced by nbLost().

UInt_t evf::FUResourceTable::nbPending_
private

Definition at line 242 of file FUResourceTable.h.

Referenced by nbPending().

UInt_t evf::FUResourceTable::nbPendingSMDiscards_
private

Definition at line 247 of file FUResourceTable.h.

Referenced by nbPendingSMDiscards().

UInt_t evf::FUResourceTable::nbPendingSMDqmDiscards_
private

Definition at line 248 of file FUResourceTable.h.

Referenced by nbPendingSMDqmDiscards().

UInt_t evf::FUResourceTable::nbRawCells_
private

Definition at line 230 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbRecoCells_
private

Definition at line 231 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::nbSent_
private

Definition at line 244 of file FUResourceTable.h.

Referenced by nbSent().

UInt_t evf::FUResourceTable::nbSentDqm_
private

Definition at line 246 of file FUResourceTable.h.

Referenced by nbSentDqm().

UInt_t evf::FUResourceTable::nbSentError_
private

Definition at line 245 of file FUResourceTable.h.

Referenced by nbSentError().

FUResourceVec_t evf::FUResourceTable::resources_
private

Definition at line 228 of file FUResourceTable.h.

Referenced by nbResources().

UInt_t evf::FUResourceTable::runNumber_
private

Definition at line 265 of file FUResourceTable.h.

Referenced by setRunNumber().

FUShmBuffer* evf::FUResourceTable::shmBuffer_
private

Definition at line 227 of file FUResourceTable.h.

unsigned int evf::FUResourceTable::shutdownTimeout_
private

Definition at line 239 of file FUResourceTable.h.

SMProxy* evf::FUResourceTable::sm_
private

Definition at line 214 of file FUResourceTable.h.

UInt_t evf::FUResourceTable::sumOfSizes_
private

Definition at line 263 of file FUResourceTable.h.

Referenced by sumOfSizes().

uint64_t evf::FUResourceTable::sumOfSquares_
private

Definition at line 262 of file FUResourceTable.h.

Referenced by sumOfSquares().

WorkLoop_t* evf::FUResourceTable::wlDiscard_
private

Definition at line 224 of file FUResourceTable.h.

WorkLoop_t* evf::FUResourceTable::wlSendData_
private

Definition at line 218 of file FUResourceTable.h.

WorkLoop_t* evf::FUResourceTable::wlSendDqm_
private

Definition at line 221 of file FUResourceTable.h.