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");