Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:36:40

0001 #ifndef IOPool_Streamer_StreamerFileWriter_h
0002 #define IOPool_Streamer_StreamerFileWriter_h
0003 
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 
0006 #include "IOPool/Streamer/interface/StreamerOutputFile.h"
0007 #include "IOPool/Streamer/interface/InitMsgBuilder.h"
0008 #include "IOPool/Streamer/interface/EventMsgBuilder.h"
0009 #include "FWCore/Utilities/interface/propagate_const.h"
0010 #include "IOPool/Streamer/interface/InitMessage.h"
0011 #include "IOPool/Streamer/interface/EventMessage.h"
0012 #include "IOPool/Streamer/interface/MsgTools.h"
0013 
0014 #include <iostream>
0015 #include <vector>
0016 #include <memory>
0017 #include <string>
0018 
0019 namespace edm {
0020   class ParameterSetDescription;
0021   namespace streamer {
0022     class StreamerFileWriter {
0023     public:
0024       explicit StreamerFileWriter(edm::ParameterSet const& ps);
0025       explicit StreamerFileWriter(std::string const& fileName);
0026       ~StreamerFileWriter();
0027 
0028       static void fillDescription(ParameterSetDescription& desc);
0029 
0030       void doOutputHeader(InitMsgBuilder const& init_message);
0031       void doOutputHeader(InitMsgView const& init_message);
0032 
0033       void doOutputEvent(EventMsgBuilder const& msg);
0034       void doOutputEvent(EventMsgView const& msg);
0035 
0036       void start() {}
0037       void stop() {}
0038 
0039       uint32 get_adler32() const { return stream_writer_->adler32(); }
0040 
0041     private:
0042       edm::propagate_const<std::unique_ptr<StreamerOutputFile>> stream_writer_;
0043     };
0044   }  // namespace streamer
0045 }  // namespace edm
0046 #endif