#include <EventMessage.h>
Public Member Functions | |
uint32 | adler32_chksum () const |
uint32 | code () const |
uint32 | droppedEventsCount () const |
uint32 | event () const |
const uint8 * | eventData () const |
uint32 | eventLength () const |
EventMsgView (void *buf) | |
uint32 | headerSize () const |
uint32 | hltCount () const |
void | hltTriggerBits (uint8 *put_here) const |
std::string | hostName () const |
uint32 | hostName_len () const |
uint32 | l1Count () const |
void | l1TriggerBits (std::vector< bool > &put_here) const |
uint32 | lumi () const |
uint32 | origDataSize () const |
uint32 | outModId () const |
uint32 | protocolVersion () const |
uint32 | run () const |
uint32 | size () const |
uint8 * | startAddress () const |
Private Attributes | |
uint32 | adler32_chksum_ |
uint8 * | buf_ |
uint32 | event_len_ |
uint8 * | event_start_ |
HeaderView | head_ |
uint32 | hlt_bits_count_ |
uint8 * | hlt_bits_start_ |
uint32 | host_name_len_ |
uint8 * | host_name_start_ |
uint32 | l1_bits_count_ |
uint8 * | l1_bits_start_ |
bool | v2Detected_ |
Definition at line 69 of file EventMessage.h.
EventMsgView::EventMsgView | ( | void * | buf | ) |
Definition at line 5 of file EventMessage.cc.
References adler32_chksum_, buf_, convert32(), event_len_, event_start_, Exception, hlt_bits_count_, hlt_bits_start_, host_name_len_, host_name_start_, l1_bits_count_, l1_bits_start_, protocolVersion(), and v2Detected_.
: buf_((uint8*)buf),head_(buf), v2Detected_(false) { // 29-Jan-2008, KAB - adding an explicit version number. // We'll start with 5 to match the new version of the INIT message. // We support earlier versions of the full protocol, of course, but since // we didn't have an explicit version number in the Event Message before // now, we have to limit what we can handle to versions that have the // version number included (>= 5). // 18-Jul-2008, wmtan - payload changed for version 7. // So we no longer support previous formats. if (protocolVersion() != 9) { throw cms::Exception("EventMsgView", "Invalid Message Version:") << "Only message version 9 is currently supported \n" << "(invalid value = " << protocolVersion() << ").\n" << "We support only reading and converting streamer files\n" << "using the same version of CMSSW used to created the\n" << "streamer file. This is because the streamer format is\n" << "only a temporary format, as such we do not support\n" << "backwards compatibility. If you really need a streamer\n" << "file for some reason, the work around is that you convert\n" << "the streamer file to a Root file using the CMSSW version\n" << "that created the streamer file, then convert the Root file\n" << "to a streamer file using a newer release that will produce\n" << "the version of streamer file that you desire.\n"; } uint8* l1_bit_size_ptr = buf_ + sizeof(EventHeader); //Just after Header l1_bits_count_ = convert32(l1_bit_size_ptr); uint32 l1_sz = l1_bits_count_; // No point! Not supporting older versions and causes problems in unit // tests that uses l1_bits_count_ == 11, and could cause problems later if using 11 //Lets detect if thats V2 message //if (l1_bits_count_ == 11) { // l1_sz = 1; // v2Detected_=true; //} l1_bits_start_ = buf_ + sizeof(EventHeader) + sizeof(uint32); if (v2Detected_ == false) { if (l1_sz != 0) l1_sz = 1 + ((l1_sz-1)/8); } uint8* hlt_bit_size_ptr = l1_bits_start_ + l1_sz; hlt_bits_count_ = convert32(hlt_bit_size_ptr); hlt_bits_start_ = hlt_bit_size_ptr + sizeof(uint32); uint32 hlt_sz = hlt_bits_count_; if (hlt_sz != 0) hlt_sz = 1+ ((hlt_sz-1)/4); if(v2Detected_) hlt_sz=2; uint8* adler32_start = hlt_bits_start_ + hlt_sz; adler32_chksum_ = convert32(adler32_start); host_name_start_ = adler32_start + sizeof(uint32); host_name_len_ = *host_name_start_; host_name_start_ += sizeof(uint8); event_start_ = host_name_start_ + host_name_len_; event_len_ = convert32(event_start_); event_start_ += sizeof(char_uint32); }
uint32 EventMsgView::adler32_chksum | ( | ) | const [inline] |
Definition at line 95 of file EventMessage.h.
References adler32_chksum_.
Referenced by edm::StreamerInputSource::deserializeEvent(), and dumpEventHeader().
{return adler32_chksum_;}
uint32 EventMsgView::code | ( | ) | const [inline] |
Definition at line 75 of file EventMessage.h.
References HeaderView::code(), and head_.
Referenced by edm::StreamerInputSource::deserializeEvent(), and dumpEventHeader().
uint32 EventMsgView::droppedEventsCount | ( | ) | const |
Definition at line 103 of file EventMessage.cc.
References buf_, convert32(), EventHeader::droppedEventsCount_, and h.
Referenced by dumpEventHeader(), smproxy::EventMsg::EventMsg(), and edm::EventStreamHttpReader::read().
{ EventHeader* h = (EventHeader*)buf_; return convert32(h->droppedEventsCount_); return 0; }
uint32 EventMsgView::event | ( | ) | const |
Definition at line 79 of file EventMessage.cc.
References buf_, convert32(), EventHeader::event_, and h.
Referenced by edm::StreamerInputSource::deserializeEvent(), and dumpEventHeader().
{ EventHeader* h = (EventHeader*)buf_; return convert32(h->event_); }
const uint8* EventMsgView::eventData | ( | ) | const [inline] |
Definition at line 78 of file EventMessage.h.
References event_start_.
Referenced by edm::StreamerInputSource::deserializeEvent(), and StreamerOutputFile::write().
{ return event_start_; }
uint32 EventMsgView::eventLength | ( | ) | const [inline] |
Definition at line 80 of file EventMessage.h.
References event_len_.
Referenced by edm::StreamerInputSource::deserializeEvent(), and dumpEventHeader().
{ return event_len_; }
uint32 EventMsgView::headerSize | ( | ) | const [inline] |
Definition at line 81 of file EventMessage.h.
References buf_, and event_start_.
Referenced by stor::detail::EventMsgData::cacheHeaderFields(), StreamerOutputFile::write(), and StreamerOutputFile::writeEventHeader().
{return event_start_-buf_;}
uint32 EventMsgView::hltCount | ( | ) | const [inline] |
Definition at line 93 of file EventMessage.h.
References hlt_bits_count_.
Referenced by dumpEventHeader().
{return hlt_bits_count_;}
void EventMsgView::hltTriggerBits | ( | uint8 * | put_here | ) | const |
Definition at line 119 of file EventMessage.cc.
References filterCSVwithJSON::copy, hlt_bits_count_, hlt_bits_start_, and v2Detected_.
Referenced by edm::FUShmOutputModule::countEventForDatasets(), edm::StreamerFileWriter::doOutputEvent(), and dumpEventHeader().
{ uint32 hlt_sz = hlt_bits_count_; if (hlt_sz != 0) hlt_sz = 1 + ((hlt_sz-1)/4); if(v2Detected_) hlt_sz=2; std::copy(hlt_bits_start_,hlt_bits_start_ + hlt_sz, put_here); }
std::string EventMsgView::hostName | ( | ) | const |
Definition at line 130 of file EventMessage.cc.
References newFWLiteAna::found, host_name_len_, and host_name_start_.
Referenced by edm::StreamerInputSource::deserializeEvent(), and dumpEventHeader().
{ //return std::string(reinterpret_cast<char *>(host_name_start_),host_name_len_); std::string host_name(reinterpret_cast<char *>(host_name_start_),host_name_len_); size_t found = host_name.find('\0'); if(found != std::string::npos) { return std::string(host_name, 0, found); } else { return host_name; } }
uint32 EventMsgView::hostName_len | ( | ) | const [inline] |
uint32 EventMsgView::l1Count | ( | ) | const [inline] |
void EventMsgView::l1TriggerBits | ( | std::vector< bool > & | put_here | ) | const |
Definition at line 110 of file EventMessage.cc.
References i, l1_bits_count_, and l1_bits_start_.
Referenced by dumpEventHeader().
{ put_here.clear(); put_here.resize(l1_bits_count_); for(std::vector<bool>::size_type i = 0; i < l1_bits_count_; ++i) put_here[i] = (bool)(l1_bits_start_[i/8] & (1<<((i&0x07)))); }
uint32 EventMsgView::lumi | ( | ) | const |
Definition at line 85 of file EventMessage.cc.
References buf_, convert32(), h, and EventHeader::lumi_.
Referenced by edm::StreamerInputSource::deserializeEvent(), dumpEventHeader(), and edm::EventStreamHttpReader::read().
{ EventHeader* h = (EventHeader*)buf_; return convert32(h->lumi_); }
uint32 EventMsgView::origDataSize | ( | ) | const |
Definition at line 91 of file EventMessage.cc.
References buf_, convert32(), h, and EventHeader::origDataSize_.
Referenced by edm::StreamerInputSource::deserializeEvent(), and dumpEventHeader().
{ EventHeader* h = (EventHeader*)buf_; return convert32(h->origDataSize_); }
uint32 EventMsgView::outModId | ( | ) | const |
Definition at line 97 of file EventMessage.cc.
References buf_, convert32(), h, and EventHeader::outModId_.
Referenced by dumpEventHeader().
{ EventHeader* h = (EventHeader*)buf_; return convert32(h->outModId_); }
uint32 EventMsgView::protocolVersion | ( | ) | const |
Definition at line 67 of file EventMessage.cc.
References buf_, h, and EventHeader::protocolVersion_.
Referenced by dumpEventHeader(), and EventMsgView().
{ EventHeader* h = (EventHeader*)buf_; return h->protocolVersion_; }
uint32 EventMsgView::run | ( | void | ) | const |
Definition at line 73 of file EventMessage.cc.
References buf_, convert32(), h, and EventHeader::run_.
Referenced by edm::StreamerInputSource::deserializeEvent(), and dumpEventHeader().
{ EventHeader* h = (EventHeader*)buf_; return convert32(h->run_); }
uint32 EventMsgView::size | ( | void | ) | const [inline] |
Definition at line 76 of file EventMessage.h.
References head_, and HeaderView::size().
Referenced by edm::StreamerInputSource::deserializeEvent(), dumpEventHeader(), smproxy::EventMsg::EventMsg(), and StreamerOutputFile::write().
uint8* EventMsgView::startAddress | ( | ) | const [inline] |
Definition at line 79 of file EventMessage.h.
References buf_.
Referenced by smproxy::EventMsg::EventMsg(), and StreamerOutputFile::writeEventHeader().
{ return buf_; }
uint32 EventMsgView::adler32_chksum_ [private] |
Definition at line 109 of file EventMessage.h.
Referenced by adler32_chksum(), and EventMsgView().
uint8* EventMsgView::buf_ [private] |
Definition at line 100 of file EventMessage.h.
Referenced by droppedEventsCount(), event(), EventMsgView(), headerSize(), lumi(), origDataSize(), outModId(), protocolVersion(), run(), and startAddress().
uint32 EventMsgView::event_len_ [private] |
Definition at line 108 of file EventMessage.h.
Referenced by eventLength(), and EventMsgView().
uint8* EventMsgView::event_start_ [private] |
Definition at line 107 of file EventMessage.h.
Referenced by eventData(), EventMsgView(), and headerSize().
HeaderView EventMsgView::head_ [private] |
Definition at line 101 of file EventMessage.h.
uint32 EventMsgView::hlt_bits_count_ [private] |
Definition at line 104 of file EventMessage.h.
Referenced by EventMsgView(), hltCount(), and hltTriggerBits().
uint8* EventMsgView::hlt_bits_start_ [private] |
Definition at line 103 of file EventMessage.h.
Referenced by EventMsgView(), and hltTriggerBits().
uint32 EventMsgView::host_name_len_ [private] |
Definition at line 111 of file EventMessage.h.
Referenced by EventMsgView(), hostName(), and hostName_len().
uint8* EventMsgView::host_name_start_ [private] |
Definition at line 110 of file EventMessage.h.
Referenced by EventMsgView(), and hostName().
uint32 EventMsgView::l1_bits_count_ [private] |
Definition at line 106 of file EventMessage.h.
Referenced by EventMsgView(), l1Count(), and l1TriggerBits().
uint8* EventMsgView::l1_bits_start_ [private] |
Definition at line 105 of file EventMessage.h.
Referenced by EventMsgView(), and l1TriggerBits().
bool EventMsgView::v2Detected_ [private] |
Definition at line 112 of file EventMessage.h.
Referenced by EventMsgView(), and hltTriggerBits().