Libosmium  2.7.1
Fast and flexible C++ library for working with OpenStreetMap data
Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
osmium::io::CompressionFactory Class Reference

#include <compression.hpp>

Public Types

using create_compressor_type = std::function< osmium::io::Compressor *(int, fsync)>
 
using create_decompressor_type_fd = std::function< osmium::io::Decompressor *(int)>
 
using create_decompressor_type_buffer = std::function< osmium::io::Decompressor *(const char *, size_t)>
 

Public Member Functions

bool register_compression (osmium::io::file_compression compression, create_compressor_type create_compressor, create_decompressor_type_fd create_decompressor_fd, create_decompressor_type_buffer create_decompressor_buffer)
 
template<typename... TArgs>
std::unique_ptr< osmium::io::Compressorcreate_compressor (osmium::io::file_compression compression, TArgs &&...args)
 
std::unique_ptr< osmium::io::Decompressorcreate_decompressor (osmium::io::file_compression compression, int fd)
 
std::unique_ptr< osmium::io::Decompressorcreate_decompressor (osmium::io::file_compression compression, const char *buffer, size_t size)
 

Static Public Member Functions

static CompressionFactoryinstance ()
 

Private Types

using compression_map_type = std::map< const osmium::io::file_compression, std::tuple< create_compressor_type, create_decompressor_type_fd, create_decompressor_type_buffer >>
 

Private Member Functions

 CompressionFactory ()=default
 
 CompressionFactory (const CompressionFactory &)=delete
 
CompressionFactoryoperator= (const CompressionFactory &)=delete
 
 CompressionFactory (CompressionFactory &&)=delete
 
CompressionFactoryoperator= (CompressionFactory &&)=delete
 
OSMIUM_NORETURN void error (osmium::io::file_compression compression)
 

Private Attributes

compression_map_type m_callbacks
 

Detailed Description

This singleton factory class is used to register compression algorithms used for reading and writing OSM files.

For each algorithm we store two functions that construct a compressor and decompressor object, respectively.

Member Typedef Documentation

Constructor & Destructor Documentation

osmium::io::CompressionFactory::CompressionFactory ( )
privatedefault
osmium::io::CompressionFactory::CompressionFactory ( const CompressionFactory )
privatedelete
osmium::io::CompressionFactory::CompressionFactory ( CompressionFactory &&  )
privatedelete

Member Function Documentation

template<typename... TArgs>
std::unique_ptr<osmium::io::Compressor> osmium::io::CompressionFactory::create_compressor ( osmium::io::file_compression  compression,
TArgs &&...  args 
)
inline
std::unique_ptr<osmium::io::Decompressor> osmium::io::CompressionFactory::create_decompressor ( osmium::io::file_compression  compression,
int  fd 
)
inline
std::unique_ptr<osmium::io::Decompressor> osmium::io::CompressionFactory::create_decompressor ( osmium::io::file_compression  compression,
const char *  buffer,
size_t  size 
)
inline
OSMIUM_NORETURN void osmium::io::CompressionFactory::error ( osmium::io::file_compression  compression)
inlineprivate
static CompressionFactory& osmium::io::CompressionFactory::instance ( )
inlinestatic
CompressionFactory& osmium::io::CompressionFactory::operator= ( const CompressionFactory )
privatedelete
CompressionFactory& osmium::io::CompressionFactory::operator= ( CompressionFactory &&  )
privatedelete
bool osmium::io::CompressionFactory::register_compression ( osmium::io::file_compression  compression,
create_compressor_type  create_compressor,
create_decompressor_type_fd  create_decompressor_fd,
create_decompressor_type_buffer  create_decompressor_buffer 
)
inline

Member Data Documentation

compression_map_type osmium::io::CompressionFactory::m_callbacks
private

The documentation for this class was generated from the following file: