1 #ifndef FURESOURCETABLE_H
2 #define FURESOURCETABLE_H 1
12 #include "log4cplus/logger.h"
13 #include "toolbox/lang/Class.h"
14 #include "toolbox/task/Action.h"
15 #include "toolbox/task/WorkLoop.h"
16 #include "toolbox/BSem.h"
18 #include <sys/types.h>
63 bool sendData(toolbox::task::WorkLoop* workLoop);
67 bool sendDqm(toolbox::task::WorkLoop* workLoop);
71 bool discard(toolbox::task::WorkLoop* workLoop);
bool discardDataEvent(MemRef_t *bufRef)
UInt_t nbFreeSlots() const
std::vector< UInt_t > cellEvtNumbers() const
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 *)
std::vector< std::string > cellStates() const
bool handleCrashedEP(UInt_t runNumber, pid_t pid)
void setDoDumpEvents(UInt_t doDumpEvents)
UInt_t nbClientsToShutDown_
toolbox::mem::Reference MemRef_t
void sendErrorEvent(UInt_t fuResourceId, UInt_t runNumber, UInt_t evtNumber, UInt_t fuProcessId, UInt_t fuGuid, UChar_t *data, UInt_t dataSize)
bool buildResource(MemRef_t *bufRef)
bool sendData(toolbox::task::WorkLoop *workLoop)
std::queue< UInt_t > freeResourceIds_
bool sendDqm(toolbox::task::WorkLoop *workLoop)
bool * acceptSMDataDiscard_
UInt_t allocateResource()
void sendDiscard(UInt_t buResourceId)
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)
ActionSignature_t * asDiscard_
ActionSignature_t * asSendData_
UInt_t nbDiscarded() const
int * acceptSMDqmDiscard_
bool discard(toolbox::task::WorkLoop *workLoop)
uint64_t sumOfSquares() const
bool isReadyToShutDown() const
UInt_t nbPendingSMDqmDiscards() const
UInt_t sumOfSizes() const
std::vector< time_t > cellTimeStamps() const
std::vector< pid_t > clientPrcIds() const
std::vector< FUResource * > FUResourceVec_t
UInt_t nbAllocated() const
void startSendDqmWorkLoop()
toolbox::task::WorkLoop WorkLoop_t
void startSendDataWorkLoop()
UInt_t nbCrcErrors() const
UInt_t nbResources() const
void setRunNumber(UInt_t runNumber)
UInt_t nbSentError() const
bool isLastMessageOfEvent(MemRef_t *bufRef)
ActionSignature_t * asSendDqm_
std::string clientPrcIdsAsString() const
toolbox::task::ActionSignature ActionSignature_t
UInt_t nbCompleted() const
unsigned long long uint64_t
void printWorkLoopStatus()
UInt_t nbPendingSMDiscards_
UInt_t nbPendingSMDiscards() const
UInt_t nbAllocSent() const
std::vector< pid_t > cellPrcIds() const
unsigned int shutdownTimeout_
UInt_t nbPendingSMDqmDiscards_
void dumpEvent(evf::FUShmRawCell *cell)
void startDiscardWorkLoop()
void postEndOfLumiSection(MemRef_t *bufRef)
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)
virtual ~FUResourceTable()
std::vector< std::string > dqmCellStates() const
bool discardDqmEvent(MemRef_t *bufRef)
FUResourceVec_t resources_
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 initialize(bool segmentationMode, UInt_t nbRawCells, UInt_t nbRecoCells, UInt_t nbDqmCells, UInt_t rawCellSize, UInt_t recoCellSize, UInt_t dqmCellSize)