15 #include "toolbox/net/Utils.h"
31 const unsigned int expectedUpdates,
35 dqmConsumers_(dqmConsumers),
36 dqmParams_(dqmParams),
37 dqmEventMonColl_(dqmEventMonColl),
38 expectedUpdates_(expectedUpdates),
39 alarmHandler_(alarmHandler),
43 gROOT->SetBatch(kTRUE);
44 dqmEventMonColl_.getNumberOfTopLevelFoldersMQ().addSample(1);
66 std::auto_ptr<DQMEvent::TObjectTable> toTablePtr =
75 std::ostringstream
msg;
80 <<
" updates are expected.";
81 XCEPT_DECLARE(exception::DQMEventProcessing,
82 sentinelException, msg.str());
89 static_cast<double>(view.
size()) / 0x100000
113 DQMEvent::TObjectTable::const_iterator it = toTablePtr->begin(),
114 itEnd = toTablePtr->end();
121 DQMFoldersMap::iterator
pos =
dqmFolders_.lower_bound(folderName);
128 pos->second->addObjects(it->second);
145 const size_t sourceSize =
151 const size_t totalSize =
154 + 12*
sizeof(uint32_t)
168 toolbox::net::getHostName().c_str(),
174 std::copy(source,source+sourceSize, builder.eventAddress());
175 builder.setEventLength(sourceSize);
184 builder.setCompressionFlag(0);
198 size_t folderSize = 0;
206 DQMEvent::TObjectTable::iterator
pos = table.lower_bound(folderName);
207 if ( pos == table.end() || (table.key_comp()(
folderName, pos->first)) )
209 std::vector<TObject*> newObjectVector;
211 folderSize += 2*
sizeof(uint32_t) + folderName.length();
213 folder->fillObjectVector(pos->second);
TimePoint_t getCurrentTime()
uint32_t adler32_chksum() const
edm::Timestamp timeStamp_
void addDQMEvent(const DQMEventMsgView &)
size_t populateTable(DQMEvent::TObjectTable &) const
bool isReady(const utils::TimePoint_t &now) const
std::vector< QueueID > QueueIDs
void addSample(const double &value=1)
void * getBuffer(size_t size) const
Container::value_type value_type
static unsigned int sentEvents_
int serializeDQMEvent(DQMEvent::TObjectTable &toTable, bool use_compression, int compression_level)
uint32 updateNumber() const
unsigned int currentEventSize() const
utils::Duration_t readyTimeDQM_
std::string topFolderName() const
std::auto_ptr< DQMEvent::TObjectTable > deserializeDQMEvent(DQMEventMsgView const &dqmEventView)
void addEvent(std::auto_ptr< DQMEvent::TObjectTable >)
std::string topLevelFolderName
const unsigned int expectedUpdates_
const T & max(const T &a, const T &b)
const DQMProcessingParams dqmParams_
const MonitoredQuantity & getNumberOfUpdatesMQ() const
utils::TimePoint_t lastUpdate_
boost::posix_time::ptime TimePoint_t
unsigned char * bufferPointer() const
DQMFoldersMap dqmFolders_
boost::shared_ptr< AlarmHandler > AlarmHandlerPtr
const MonitoredQuantity & getDQMEventSizeMQ() const
DQMTopLevelFolder(const DQMKey &, const QueueIDs &, const DQMProcessingParams &, DQMEventMonitorCollection &, const unsigned int expectedUpdates, AlarmHandlerPtr)
const MonitoredQuantity & getNumberOfCompleteUpdatesMQ() const
std::string releaseTag() const
static Timestamp const & invalidTimestamp()
unsigned long totalDataSize() const
DQMEventMonitorCollection & dqmEventMonColl_
uint32 lumiSection() const
boost::shared_ptr< DQMFolder > DQMFolderPtr
const MonitoredQuantity & getServedDQMEventSizeMQ() const
std::map< std::string, std::vector< TObject * > > TObjectTable
const QueueIDs dqmConsumers_
AlarmHandlerPtr alarmHandler_
void tagForEventConsumers(const QueueIDs &ids)
edm::Timestamp timeStamp() const