1 #ifndef OSMIUM_IO_WRITER_HPP
2 #define OSMIUM_IO_WRITER_HPP
41 #include <osmium/io/detail/output_format.hpp>
42 #include <osmium/io/detail/read_write.hpp>
43 #include <osmium/io/detail/write_thread.hpp>
66 std::unique_ptr<osmium::io::detail::OutputFormat>
m_output;
91 m_output_queue(20,
"raw_output"),
92 m_output(
osmium::io::detail::OutputFormatFactory::instance().create_output(m_file, m_output_queue)),
93 m_compressor(
osmium::io::
CompressionFactory::instance().create_compressor(file.compression(),
osmium::io::detail::open_for_writing(m_file.filename(), allow_overwrite))),
94 m_write_future(
std::async(
std::launch::async, detail::WriteThread(m_output_queue, m_compressor.get()))) {
96 m_output->write_header(header);
121 if (buffer.committed() > 0) {
122 m_output->write_buffer(std::move(buffer));
145 #endif // OSMIUM_IO_WRITER_HPP
Writer(const char *filename, const osmium::io::Header &header=osmium::io::Header(), overwrite allow_overwrite=overwrite::no)
Definition: writer.hpp:103
Definition: reader_iterator.hpp:39
osmium::io::detail::data_queue_type m_output_queue
Definition: writer.hpp:64
std::unique_ptr< osmium::io::detail::OutputFormat > m_output
Definition: writer.hpp:66
~Writer()
Definition: writer.hpp:110
std::unique_ptr< osmium::io::Compressor > m_compressor
Definition: writer.hpp:68
void operator()(osmium::memory::Buffer &&buffer)
Definition: writer.hpp:119
Namespace for everything in the Osmium library.
Definition: assembler.hpp:55
Writer(const osmium::io::File &file, const osmium::io::Header &header=osmium::io::Header(), overwrite allow_overwrite=overwrite::no)
Definition: writer.hpp:89
void close()
Definition: writer.hpp:134
osmium::io::File m_file
Definition: writer.hpp:62
Definition: buffer.hpp:94
const char * buffer() const noexcept
Definition: file.hpp:157
Definition: writer.hpp:60
std::future< bool > m_write_future
Definition: writer.hpp:70
void check_for_exception(std::future< T > &future)
Definition: util.hpp:53
Definition: compression.hpp:105
void wait_until_done(std::future< T > &future)
Definition: util.hpp:64
Writer(const std::string &filename, const osmium::io::Header &header=osmium::io::Header(), overwrite allow_overwrite=overwrite::no)
Definition: writer.hpp:99
overwrite
Definition: overwrite.hpp:43
Writer & operator=(const Writer &)=delete