6#ifndef HEPMC3_WRITERGZ_H
7#define HEPMC3_WRITERGZ_H
25template <
class T, Compression C = Compression::z>
class WriterGZ :
public Writer {
30 WriterGZ(
const std::string& filename, std::shared_ptr<GenRunInfo> run = std::shared_ptr<GenRunInfo>()) {
31 m_zstr = std::shared_ptr< std::ostream >(
new ofstream(filename.c_str(), C));
36 WriterGZ(std::ostream& stream, std::shared_ptr<GenRunInfo> run = std::shared_ptr<GenRunInfo>()) {
37 m_zstr = std::shared_ptr< std::ostream >(
new ostream(stream, C));
42 WriterGZ(std::shared_ptr<std::ostream> s_stream, std::shared_ptr<GenRunInfo> run = std::shared_ptr<GenRunInfo>()) {
43 m_zstr = std::shared_ptr< std::ostream >(
new ostream(*(s_stream.get()), C));
62 if(dynamic_pointer_cast<ofstream>(
m_zstr)) dynamic_pointer_cast<ofstream>(
m_zstr)->close();
75 std::shared_ptr< std::ostream >
m_zstr =
nullptr;
HepMC3 interface to bxzstr library and some routines.
Definition of class GenEvent.
Definition of class GenRunInfo.
Definition of interface Writer.
Stores event-related information.
std::shared_ptr< Writer > m_writer
actual writter
void set_run_info(std::shared_ptr< GenRunInfo > run) override
Set the act writer's GenRunInfo object.
bool failed() override
Return status of the stream.
WriterGZ(const std::string &filename, std::shared_ptr< GenRunInfo > run=std::shared_ptr< GenRunInfo >())
Constructor.
void close() override
Close file stream.
WriterGZ(std::ostream &stream, std::shared_ptr< GenRunInfo > run=std::shared_ptr< GenRunInfo >())
Constructor from ostream.
std::shared_ptr< std::ostream > m_zstr
Stream to write.
void write_event(const GenEvent &evt) override
Write event to file.
std::shared_ptr< Writer > writer()
Return writer.
std::shared_ptr< GenRunInfo > run_info() const override
Get the act writer's GenRunInfo object.
WriterGZ(std::shared_ptr< std::ostream > s_stream, std::shared_ptr< GenRunInfo > run=std::shared_ptr< GenRunInfo >())
Constructor from ostream.
bxz::ostream ostream
ostream
bxz::ofstream ofstream
ofstream