![]() |
![]() |
#include <IOPool/Streamer/interface/StreamerOutputFile.h>
Public Member Functions | |
uint32 | adler32 () const |
StreamerOutputFile (const std::string &name) | |
uint64 | write (const EventMsgView &) |
Performs write on EventMsgBuilder type, Header + Blob, both are written out. | |
uint64 | write (const EventMsgBuilder &) |
void | write (const InitMsgView &) |
Performs write on InitMsgBuilder type, Header + Blob, both are written out. | |
void | write (const InitMsgBuilder &) |
uint32 | writeEOF (uint32 statusCode, const std::vector< uint32 > &hltStats) |
~StreamerOutputFile () | |
CTOR, takes file path name as argument. | |
Private Member Functions | |
void | writeEventHeader (const EventMsgView &ineview) |
void | writeStart (const InitMsgView &inview) |
Private Attributes | |
OutputFile * | streamerfile_ |
Class for doing Streamer Write operations
Definition at line 20 of file StreamerOutputFile.h.
StreamerOutputFile::StreamerOutputFile | ( | const std::string & | name | ) | [explicit] |
Definition at line 10 of file StreamerOutputFile.cc.
References OutputFile::set_do_adler(), and streamerfile_.
00010 : 00011 streamerfile_(new OutputFile(name)) 00012 { 00013 streamerfile_->set_do_adler(1); 00014 }
StreamerOutputFile::~StreamerOutputFile | ( | ) |
CTOR, takes file path name as argument.
Definition at line 5 of file StreamerOutputFile.cc.
References streamerfile_.
00006 { 00007 delete streamerfile_; 00008 }
uint32 StreamerOutputFile::adler32 | ( | ) | const [inline] |
Definition at line 52 of file StreamerOutputFile.h.
References OutputFile::adler32(), and streamerfile_.
00052 { return streamerfile_->adler32(); }
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 22 of file StreamerOutputFile.cc.
References OutputFile::current_offset(), lat::endl(), EventMsgView::eventData(), Exception, OutputFile::fileName(), EventMsgView::headerSize(), OutputFile::inc_events(), OutputFile::set_last_event_offset(), EventMsgView::size(), streamerfile_, OutputFile::write(), and writeEventHeader().
00023 { 00025 uint64 offset_to_return = streamerfile_->current_offset(); 00026 00028 streamerfile_->set_last_event_offset(streamerfile_->current_offset()); 00029 00030 writeEventHeader(ineview); 00031 bool ret = streamerfile_->write((const char*) ineview.eventData(), 00032 ineview.size() - ineview.headerSize()); 00033 if (ret) { 00034 throw cms::Exception("OutputFile", "write(EventMsgView)") 00035 << "Error writing streamer event data to " 00036 << streamerfile_->fileName() << ". Possibly the output disk " 00037 << "is full?" << std::endl; 00038 } 00039 00040 streamerfile_->inc_events(); 00041 00042 return offset_to_return; 00043 }
uint64 StreamerOutputFile::write | ( | const EventMsgBuilder & | ineview | ) |
Definition at line 16 of file StreamerOutputFile.cc.
References EventMsgBuilder::startAddress(), and write().
00017 { 00018 EventMsgView tmpView(ineview.startAddress()); 00019 return write(tmpView); 00020 }
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 64 of file StreamerOutputFile.cc.
References OutputFile::current_offset(), InitMsgView::descData(), lat::endl(), Exception, OutputFile::fileName(), InitMsgView::headerSize(), OutputFile::set_first_event_offset(), InitMsgView::size(), streamerfile_, OutputFile::write(), and writeStart().
00065 { 00066 writeStart(inview); 00067 bool ret = streamerfile_->write((const char*) inview.descData(), 00068 inview.size() - inview.headerSize()); 00069 if (ret) { 00070 throw cms::Exception("OutputFile", "write(InitMsgView)") 00071 << "Error writing streamer header data to " 00072 << streamerfile_->fileName() << ". Possibly the output disk " 00073 << "is full?" << std::endl; 00074 } 00075 00077 streamerfile_->set_first_event_offset(streamerfile_->current_offset()); 00078 }
void StreamerOutputFile::write | ( | const InitMsgBuilder & | inview | ) |
Definition at line 58 of file StreamerOutputFile.cc.
References InitMsgBuilder::startAddress().
Referenced by write().
00059 { 00060 InitMsgView tmpView(inview.startAddress()); 00061 return write(tmpView); 00062 }
Definition at line 94 of file StreamerOutputFile.cc.
References lat::endl(), outputToXml::eof, OutputFile::events(), Exception, OutputFile::fileName(), OutputFile::first_event_offset(), OutputFile::last_event_offset(), OutputFile::run(), streamerfile_, and OutputFile::write().
00096 { 00097 EOFRecordBuilder eof(streamerfile_->run(), 00098 streamerfile_->events(), 00099 statusCode, 00100 hltStats, 00101 streamerfile_->first_event_offset(), 00102 streamerfile_->last_event_offset()); 00103 00104 bool ret = streamerfile_->write((const char*) 00105 eof.recAddress(), 00106 eof.size()); 00107 if (ret) { 00108 throw cms::Exception("OutputFile", "writeEOF") 00109 << "Error writing streamer end-of-file to " 00110 << streamerfile_->fileName() << ". Possibly the output disk " 00111 << "is full?" << std::endl; 00112 } 00113 return eof.size(); 00114 }
void StreamerOutputFile::writeEventHeader | ( | const EventMsgView & | ineview | ) | [private] |
Definition at line 45 of file StreamerOutputFile.cc.
References lat::endl(), Exception, OutputFile::fileName(), EventMsgView::headerSize(), EventMsgView::startAddress(), streamerfile_, and OutputFile::write().
Referenced by write().
00046 { 00047 bool ret = streamerfile_->write((const char*) 00048 ineview.startAddress(), 00049 ineview.headerSize()) ; 00050 if (ret) { 00051 throw cms::Exception("OutputFile", "writeEventHeader") 00052 << "Error writing streamer event data to " 00053 << streamerfile_->fileName() << ". Possibly the output disk " 00054 << "is full?" << std::endl; 00055 } 00056 }
void StreamerOutputFile::writeStart | ( | const InitMsgView & | inview | ) | [private] |
Definition at line 80 of file StreamerOutputFile.cc.
References lat::endl(), Exception, OutputFile::fileName(), InitMsgView::headerSize(), InitMsgView::run(), OutputFile::set_run(), InitMsgView::startAddress(), streamerfile_, and OutputFile::write().
Referenced by write().
00081 { 00082 bool ret = streamerfile_->write((const char*) 00083 inview.startAddress(), 00084 inview.headerSize()) ; 00085 if (ret) { 00086 throw cms::Exception("OutputFile", "writeStart") 00087 << "Error writing streamer header data to " 00088 << streamerfile_->fileName() << ". Possibly the output disk " 00089 << "is full?" << std::endl; 00090 } 00091 streamerfile_->set_run(inview.run()); 00092 }
OutputFile* StreamerOutputFile::streamerfile_ [private] |
Definition at line 59 of file StreamerOutputFile.h.
Referenced by adler32(), StreamerOutputFile(), write(), writeEOF(), writeEventHeader(), writeStart(), and ~StreamerOutputFile().