Libosmium  2.10.3
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) const
 
std::unique_ptr< osmium::io::Decompressorcreate_decompressor (osmium::io::file_compression compression, int fd) const
 
std::unique_ptr< osmium::io::Decompressorcreate_decompressor (osmium::io::file_compression compression, const char *buffer, size_t size) const
 

Static Public Member Functions

static CompressionFactoryinstance ()
 

Private Types

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

Private Member Functions

 CompressionFactory ()=default
 
 CompressionFactory (const CompressionFactory &)=delete
 
CompressionFactoryoperator= (const CompressionFactory &)=delete
 
 CompressionFactory (CompressionFactory &&)=delete
 
CompressionFactoryoperator= (CompressionFactory &&)=delete
 
const callbacks_typefind_callbacks (osmium::io::file_compression compression) const
 

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

§ callbacks_type

§ compression_map_type

§ create_compressor_type

§ create_decompressor_type_buffer

§ create_decompressor_type_fd

Constructor & Destructor Documentation

§ CompressionFactory() [1/3]

osmium::io::CompressionFactory::CompressionFactory ( )
privatedefault

§ CompressionFactory() [2/3]

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

§ CompressionFactory() [3/3]

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

Member Function Documentation

§ create_compressor()

template<typename... TArgs>
std::unique_ptr<osmium::io::Compressor> osmium::io::CompressionFactory::create_compressor ( osmium::io::file_compression  compression,
TArgs &&...  args 
) const
inline

§ create_decompressor() [1/2]

std::unique_ptr<osmium::io::Decompressor> osmium::io::CompressionFactory::create_decompressor ( osmium::io::file_compression  compression,
int  fd 
) const
inline

§ create_decompressor() [2/2]

std::unique_ptr<osmium::io::Decompressor> osmium::io::CompressionFactory::create_decompressor ( osmium::io::file_compression  compression,
const char *  buffer,
size_t  size 
) const
inline

§ find_callbacks()

const callbacks_type& osmium::io::CompressionFactory::find_callbacks ( osmium::io::file_compression  compression) const
inlineprivate

§ instance()

static CompressionFactory& osmium::io::CompressionFactory::instance ( )
inlinestatic

§ operator=() [1/2]

CompressionFactory& osmium::io::CompressionFactory::operator= ( const CompressionFactory )
privatedelete

§ operator=() [2/2]

CompressionFactory& osmium::io::CompressionFactory::operator= ( CompressionFactory &&  )
privatedelete

§ register_compression()

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

§ m_callbacks

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

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