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),
44 gROOT->SetBatch(kTRUE);
45 dqmEventMonColl_.getNumberOfTopLevelFoldersMQ().addSample(1);
68 std::auto_ptr<DQMEvent::TObjectTable> toTablePtr =
77 std::ostringstream
msg;
82 <<
" updates are expected.";
83 XCEPT_DECLARE(exception::DQMEventProcessing,
84 sentinelException, msg.str());
91 static_cast<double>(view.
size()) / 0x100000
115 DQMEvent::TObjectTable::const_iterator it = toTablePtr->begin(),
116 itEnd = toTablePtr->end();
121 const std::string folderName = it->first;
123 DQMFoldersMap::iterator
pos =
dqmFolders_.lower_bound(folderName);
130 pos->second->addObjects(it->second);
147 const size_t sourceSize =
153 const size_t totalSize =
156 + 12*
sizeof(uint32_t)
170 toolbox::net::getHostName().c_str(),
176 std::copy(source,source+sourceSize, builder.eventAddress());
177 builder.setEventLength(sourceSize);
186 builder.setCompressionFlag(0);
200 size_t folderSize = 0;
205 const std::string folderName = it->first;
208 DQMEvent::TObjectTable::iterator
pos = table.lower_bound(folderName);
209 if ( pos == table.end() || (table.key_comp()(folderName, pos->first)) )
211 std::vector<TObject*> newObjectVector;
213 folderSize += 2*
sizeof(uint32_t) + folderName.length();
215 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
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
Container::value_type value_type
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
uint32 mergeCount() const