1 #ifndef OSMIUM_IO_INPUT_ITERATOR_HPP
2 #define OSMIUM_IO_INPUT_ITERATOR_HPP
40 #include <type_traits>
55 template <
typename TSource,
typename TItem = osmium::memory::Item>
62 std::shared_ptr<osmium::memory::Buffer>
m_buffer;
67 m_buffer = std::make_shared<osmium::memory::Buffer>(std::move(m_source->read()));
68 if (!m_buffer || !*m_buffer) {
74 m_iter = m_buffer->begin<TItem>();
75 }
while (
m_iter == m_buffer->end<TItem>());
101 if (
m_iter == m_buffer->end<TItem>()) {
114 return m_source == rhs.m_source &&
115 m_buffer == rhs.m_buffer &&
120 return !(*
this == rhs);
125 return static_cast<reference
>(*m_iter);
130 return &
static_cast<reference
>(*m_iter);
135 template <
typename TSource,
typename TItem = osmium::memory::Item>
167 template <
typename TItem,
typename TSource>
177 #endif // OSMIUM_IO_INPUT_ITERATOR_HPP
Definition: item_iterator.hpp:119
Definition: reader_iterator.hpp:39
Namespace for everything in the Osmium library.
Definition: assembler.hpp:59
InputIteratorRange< TSource, TItem > make_input_iterator_range(TSource &source)
Definition: input_iterator.hpp:168