1 #ifndef OSMIUM_IO_INPUT_ITERATOR_HPP
2 #define OSMIUM_IO_INPUT_ITERATOR_HPP
40 #include <type_traits>
55 template <
class TSource,
class 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);
139 #endif // OSMIUM_IO_INPUT_ITERATOR_HPP
Definition: item_iterator.hpp:131
Namespace for everything in the Osmium library.
Definition: assembler.hpp:55