#include <StreamerOutputFile.h>
Public Member Functions | |
uint32 | adler32 () const |
StreamerOutputFile (const std::string &name) | |
void | write (const InitMsgView &) |
void | write (const InitMsgBuilder &) |
uint64 | write (const EventMsgView &) |
uint64 | write (const EventMsgBuilder &) |
uint32 | writeEOF (uint32 statusCode, const std::vector< uint32 > &hltStats) |
uint64 | writeEventFragment (uint32 fragIndex, uint32 fragCount, const char *dataPtr, uint32 dataSize) |
void | writeInitFragment (uint32 fragIndex, uint32 fragCount, const char *dataPtr, uint32 dataSize) |
~StreamerOutputFile () | |
Private Member Functions | |
void | writeEventHeader (const EventMsgView &ineview) |
void | writeStart (const InitMsgView &inview) |
Private Attributes | |
boost::shared_ptr< OutputFile > | streamerfile_ |
StreamerOutputFile: Class for doing Streamer Write operations Class for doing Streamer Write operations
Definition at line 21 of file StreamerOutputFile.h.
StreamerOutputFile::StreamerOutputFile | ( | const std::string & | name | ) | [explicit] |
Definition at line 8 of file StreamerOutputFile.cc.
References streamerfile_.
: streamerfile_(new OutputFile(name)) { streamerfile_->set_do_adler(1); }
StreamerOutputFile::~StreamerOutputFile | ( | ) |
uint32 StreamerOutputFile::adler32 | ( | ) | const [inline] |
Definition at line 59 of file StreamerOutputFile.h.
References streamerfile_.
{ return streamerfile_->adler32(); }
void StreamerOutputFile::write | ( | const InitMsgBuilder & | inview | ) |
Definition at line 81 of file StreamerOutputFile.cc.
References InitMsgBuilder::startAddress().
Referenced by write().
{ InitMsgView tmpView(inview.startAddress()); return write(tmpView); }
void StreamerOutputFile::write | ( | const InitMsgView & | inview | ) |
Performs write on InitMsgBuilder type, Header + Blob, both are written out.
Offset of first event to be written
Definition at line 87 of file StreamerOutputFile.cc.
References InitMsgView::descData(), Exception, InitMsgView::headerSize(), runTheMatrix::ret, InitMsgView::size(), streamerfile_, and writeStart().
{ writeStart(inview); bool ret = streamerfile_->write((const char*) inview.descData(), inview.size() - inview.headerSize()); if (ret) { throw cms::Exception("OutputFile", "write(InitMsgView)") << "Error writing streamer header data to " << streamerfile_->fileName() << ". Possibly the output disk " << "is full?" << std::endl; } streamerfile_->set_first_event_offset(streamerfile_->current_offset()); }
uint64 StreamerOutputFile::write | ( | const EventMsgBuilder & | ineview | ) |
Definition at line 14 of file StreamerOutputFile.cc.
References EventMsgBuilder::startAddress(), and write().
{ EventMsgView tmpView(ineview.startAddress()); return write(tmpView); }
uint64 StreamerOutputFile::write | ( | const EventMsgView & | ineview | ) |
Performs write on EventMsgBuilder type, Header + Blob, both are written out. RETURNS the Offset in Stream while at which Event was written.
Offset where current event starts
Offset of last written event
Definition at line 20 of file StreamerOutputFile.cc.
References EventMsgView::eventData(), Exception, EventMsgView::headerSize(), runTheMatrix::ret, EventMsgView::size(), streamerfile_, and writeEventHeader().
{ uint64 offset_to_return = streamerfile_->current_offset(); streamerfile_->set_last_event_offset(streamerfile_->current_offset()); writeEventHeader(ineview); bool ret = streamerfile_->write((const char*) ineview.eventData(), ineview.size() - ineview.headerSize()); if (ret) { throw cms::Exception("OutputFile", "write(EventMsgView)") << "Error writing streamer event data to " << streamerfile_->fileName() << ". Possibly the output disk " << "is full?" << std::endl; } streamerfile_->inc_events(); return offset_to_return; }
Definition at line 135 of file StreamerOutputFile.cc.
References Exception, runTheMatrix::ret, and streamerfile_.
{ EOFRecordBuilder eof(streamerfile_->run(), streamerfile_->events(), statusCode, hltStats, streamerfile_->first_event_offset(), streamerfile_->last_event_offset()); bool ret = streamerfile_->write((const char*) eof.recAddress(), eof.size()); if (ret) { throw cms::Exception("OutputFile", "writeEOF") << "Error writing streamer end-of-file to " << streamerfile_->fileName() << ". Possibly the output disk " << "is full?" << std::endl; } return eof.size(); }
uint64 StreamerOutputFile::writeEventFragment | ( | uint32 | fragIndex, |
uint32 | fragCount, | ||
const char * | dataPtr, | ||
uint32 | dataSize | ||
) |
Offset where current event starts
Offset of last written event
Definition at line 44 of file StreamerOutputFile.cc.
References Exception, runTheMatrix::ret, and streamerfile_.
{ uint64 offset_to_return = streamerfile_->current_offset(); if (fragIndex == 0) { streamerfile_->set_last_event_offset(streamerfile_->current_offset()); } bool ret = streamerfile_->write(dataPtr, dataSize); if (ret) { throw cms::Exception("OutputFile", "writeEventFragment()") << "Error writing streamer event data to " << streamerfile_->fileName() << ". Possibly the output disk " << "is full?" << std::endl; } if (fragIndex == fragCount-1) {streamerfile_->inc_events();} return offset_to_return; }
void StreamerOutputFile::writeEventHeader | ( | const EventMsgView & | ineview | ) | [private] |
Definition at line 68 of file StreamerOutputFile.cc.
References Exception, EventMsgView::headerSize(), runTheMatrix::ret, EventMsgView::startAddress(), and streamerfile_.
Referenced by write().
{ bool ret = streamerfile_->write((const char*) ineview.startAddress(), ineview.headerSize()) ; if (ret) { throw cms::Exception("OutputFile", "writeEventHeader") << "Error writing streamer event data to " << streamerfile_->fileName() << ". Possibly the output disk " << "is full?" << std::endl; } }
void StreamerOutputFile::writeInitFragment | ( | uint32 | fragIndex, |
uint32 | fragCount, | ||
const char * | dataPtr, | ||
uint32 | dataSize | ||
) |
Offset of first event to be written
Definition at line 104 of file StreamerOutputFile.cc.
References Exception, runTheMatrix::ret, and streamerfile_.
{ bool ret = streamerfile_->write((const char*) dataPtr, dataSize); if (ret) { throw cms::Exception("OutputFile", "writeInitFragment()") << "Error writing streamer header data to " << streamerfile_->fileName() << ". Possibly the output disk " << "is full?" << std::endl; } if (fragIndex == fragCount-1) { streamerfile_->set_first_event_offset(streamerfile_->current_offset()); } }
void StreamerOutputFile::writeStart | ( | const InitMsgView & | inview | ) | [private] |
Definition at line 121 of file StreamerOutputFile.cc.
References Exception, InitMsgView::headerSize(), runTheMatrix::ret, InitMsgView::run(), InitMsgView::startAddress(), and streamerfile_.
Referenced by write().
{ bool ret = streamerfile_->write((const char*) inview.startAddress(), inview.headerSize()) ; if (ret) { throw cms::Exception("OutputFile", "writeStart") << "Error writing streamer header data to " << streamerfile_->fileName() << ". Possibly the output disk " << "is full?" << std::endl; } streamerfile_->set_run(inview.run()); }
boost::shared_ptr<OutputFile> StreamerOutputFile::streamerfile_ [private] |
Definition at line 66 of file StreamerOutputFile.h.
Referenced by adler32(), StreamerOutputFile(), write(), writeEOF(), writeEventFragment(), writeEventHeader(), writeInitFragment(), and writeStart().