6#ifndef HEPMC3_COMPRESSEDIO_H
7#define HEPMC3_COMPRESSEDIO_H
8#if HEPMC3_USE_COMPRESSION
10#define BXZSTR_Z_SUPPORT 1
12#if HEPMC3_LZMA_SUPPORT
13#define BXZSTR_LZMA_SUPPORT 1
16#define BXZSTR_BZ2_SUPPORT 1
18#if HEPMC3_ZSTD_SUPPORT
19#define BXZSTR_ZSTD_SUPPORT 1
21#include "HepMC3/bxzstr/bxzstr.hpp"
24using ofstream = bxz::ofstream;
25using ostream = bxz::ostream;
26using ifstream = bxz::ifstream;
27using istream = bxz::istream;
29using Compression = bxz::Compression;
30inline Compression detect_compression_type(
char* in_buff_start,
char* in_buff_end) {
31 return bxz::detect_type(in_buff_start,in_buff_end);
33const std::vector<Compression> supported_compression_types = {
37#if HEPMC3_LZMA_SUPPORT
43#if HEPMC3_ZSTD_SUPPORT
47std::vector<Compression> known_compression_types = {
56string to_string(HepMC3::Compression & c) {
58 case HepMC3::Compression::z:
60 case HepMC3::Compression::lzma:
61 return string(
"lzma");
62 case HepMC3::Compression::bz2:
64 case HepMC3::Compression::zstd:
65 return string(
"zstd");
69 return string(
"plaintext");