53 #ifndef HAVOQGT_MPI_IMPL_VERTEX_ITERATOR_HPP_
54 #define HAVOQGT_MPI_IMPL_VERTEX_ITERATOR_HPP_
61 template <
typename SegementManager>
63 :
public std::iterator<std::input_iterator_tag, vertex_locator, ptrdiff_t,
64 const vertex_locator* const, const vertex_locator&> {
67 : m_ptr_graph(NULL) {};
87 void update_locator();
100 template <
typename SegmentManager>
104 : m_ptr_graph(pgraph)
105 , m_owned_vert_index(index) {
109 template <
typename SegmentManager>
113 ++m_owned_vert_index;
118 template <
typename SegmentManager>
123 ++m_owned_vert_index;
128 template <
typename SegmentManager>
136 template <
typename SegmentManager>
144 template <
typename SegmentManager>
151 template <
typename SegmentManager>
155 for(; m_owned_vert_index < m_ptr_graph->m_owned_info.size()
156 && m_ptr_graph->m_owned_info[m_owned_vert_index].is_delegate ==
true;
157 ++ m_owned_vert_index);
158 if(m_owned_vert_index < m_ptr_graph->
m_owned_info.size()) {
159 assert(m_ptr_graph->m_owned_info[m_owned_vert_index].is_delegate ==
false);
160 uint32_t owner = m_ptr_graph->m_mpi_rank;
167 #endif // HAVOQGT_MPI_IMPL_VERTEX_ITERATOR_HPP_
const vertex_locator & operator*() const
bool operator!=(delegate_partitioned_graph< SegementManager > &other)
friend bool operator!=(const vertex_iterator &x, const vertex_iterator &y)
friend bool operator==(const vertex_iterator &x, const vertex_iterator &y)
uint64_t m_owned_vert_index
bip::vector< vert_info, SegmentAllocator< vert_info > > m_owned_info
const delegate_partitioned_graph * m_ptr_graph
const vertex_locator *const operator->() const
bool is_equal(const vertex_iterator &x) const
bool operator==(delegate_partitioned_graph< SegementManager > &other)
vertex_iterator & operator++()