6#ifndef HEPMC3_WRITERGZ_H
7#define HEPMC3_WRITERGZ_H
22#include "HepMC3/CompressedIO.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));
56 if(dynamic_pointer_cast<ofstream>(
m_zstr)) dynamic_pointer_cast<ofstream>(
m_zstr)->close();
60 std::shared_ptr< std::ostream >
m_zstr;
Definition of class GenEvent.
Definition of class GenRunInfo.
Definition of interface Writer.
Stores event-related information.
GenEvent I/O serialization for compressed files.
std::shared_ptr< Writer > m_writer
actual writter
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.
Base class for all I/O writers.