00001 00003 #ifndef IOPool_Streamer_StreamerOutputIndexFile_h 00004 #define IOPool_Streamer_StreamerOutputIndexFile_h 00005 00006 #include "IOPool/Streamer/interface/InitMsgBuilder.h" 00007 #include "IOPool/Streamer/interface/InitMessage.h" 00008 00009 #include "IOPool/Streamer/interface/EventMsgBuilder.h" 00010 #include "IOPool/Streamer/interface/EventMessage.h" 00011 00012 #include "IOPool/Streamer/interface/StreamerFileIO.h" 00013 #include "IOPool/Streamer/interface/MsgTools.h" 00014 00015 #include<string> 00016 #include<vector> 00017 00018 class StreamerOutputIndexFile 00020 { 00021 public: 00022 explicit StreamerOutputIndexFile(const std::string& name); 00023 00024 ~StreamerOutputIndexFile(); 00025 00026 //Magic# and Reserved fileds 00027 void writeIndexFileHeader(uint32 magicNumber, uint64 reserved); 00028 00029 void write(const InitMsgBuilder&); 00030 void write(const InitMsgView&); 00031 00032 void write(const EventMsgBuilder&, uint64); 00033 void write(const EventMsgView&, uint64); 00034 00035 uint32 writeEOF(uint32 statusCode, 00036 const std::vector<uint32>& hltStats); 00037 00038 uint32 adler32() const { return indexfile_->adler32(); } 00039 00040 private: 00041 OutputFile* indexfile_; 00042 00043 }; 00044 #endif