00001 #include "IOPool/Streamer/interface/StreamDQMOutputFile.h" 00002 00003 StreamDQMOutputFile::~StreamDQMOutputFile() 00004 { 00005 delete dqmstreamfile_; 00006 } 00007 00008 StreamDQMOutputFile::StreamDQMOutputFile(const std::string& name): 00009 dqmstreamfile_(new OutputFile(name)) 00010 { 00011 } 00012 00013 uint64 StreamDQMOutputFile::write(const DQMEventMsgBuilder& inmsg) 00014 { 00016 uint64 offset_to_return = dqmstreamfile_->current_offset(); 00017 00019 dqmstreamfile_->set_last_event_offset(dqmstreamfile_->current_offset()); 00020 00021 writeDQMEventHeader(inmsg); 00022 dqmstreamfile_->write((const char*) inmsg.eventAddress(), 00023 inmsg.size() - inmsg.headerSize()); 00024 00025 dqmstreamfile_->inc_events(); 00026 00027 return offset_to_return; 00028 } 00029 00030 uint64 StreamDQMOutputFile::write(const DQMEventMsgView& ineview) 00031 { 00033 uint64 offset_to_return = dqmstreamfile_->current_offset(); 00034 00036 dqmstreamfile_->set_last_event_offset(dqmstreamfile_->current_offset()); 00037 00038 writeDQMEventHeader(ineview); 00039 dqmstreamfile_->write((const char*) ineview.eventAddress(), 00040 ineview.size() - ineview.headerSize()); 00041 00042 dqmstreamfile_->inc_events(); 00043 00044 return offset_to_return; 00045 } 00046 00047 void StreamDQMOutputFile::writeDQMEventHeader(const DQMEventMsgBuilder& inmsg) 00048 { 00049 dqmstreamfile_->write((const char*) 00050 inmsg.startAddress(), 00051 inmsg.headerSize()) ; 00052 } 00053 00054 void StreamDQMOutputFile::writeDQMEventHeader(const DQMEventMsgView& ineview) 00055 { 00056 dqmstreamfile_->write((const char*) 00057 ineview.startAddress(), 00058 ineview.headerSize()) ; 00059 }