HavoqGT
havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther > Class Template Reference

Edge Data storage. More...

#include <delegate_partitioned_graph.hpp>

Public Types

typedef bip::vector< T, bip::allocator< T, SegManagerOther > >::iterator iterator
 
typedef T value_type
 

Public Member Functions

 edge_data ()
 
T & operator[] (const edge_iterator &itr)
 
const T & operator[] (const edge_iterator &itr) const
 
void reset (const T &r)
 
iterator delegate_begin ()
 
iterator delegate_end ()
 
iterator owned_begin ()
 
iterator owned_end ()
 
 edge_data (uint64_t owned_size, uint64_t delegate_size, SegManagerOther *sm)
 
 edge_data (uint64_t owned_size, uint64_t delegate_size, const T &init, SegManagerOther *sm)
 

Private Attributes

bip::vector< T, bip::allocator< T, SegManagerOther > > m_owned_edge_data
 
bip::vector< T, bip::allocator< T, SegManagerOther > > m_delegate_edge_data
 

Detailed Description

template<typename SegementManager>
template<typename T, typename SegManagerOther>
class havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >

Edge Data storage.

Definition at line 117 of file delegate_partitioned_graph.hpp.

Member Typedef Documentation

template<typename SegementManager>
template<typename T , typename SegManagerOther >
typedef bip::vector< T, bip::allocator<T, SegManagerOther> >::iterator havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::iterator

Definition at line 65 of file edge_data.hpp.

template<typename SegementManager>
template<typename T , typename SegManagerOther >
typedef T havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::value_type

Definition at line 66 of file edge_data.hpp.

Constructor & Destructor Documentation

template<typename SegementManager>
template<typename T , typename SegManagerOther >
havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::edge_data ( )
inline

Definition at line 68 of file edge_data.hpp.

68 {}
template<typename SegmentManager >
template<typename T , typename SegManagerOther >
havoqgt::mpi::delegate_partitioned_graph< SegmentManager >::edge_data< T, SegManagerOther >::edge_data ( uint64_t  owned_size,
uint64_t  delegate_size,
SegManagerOther *  sm 
)

Definition at line 108 of file edge_data.hpp.

109  : m_owned_edge_data(sm->template get_allocator<T>())
110  , m_delegate_edge_data(sm->template get_allocator<T>()) {
111  m_owned_edge_data.resize(owned_size);
112  m_delegate_edge_data.resize(delegate_size);
113  }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_owned_edge_data
Definition: edge_data.hpp:96
bip::vector< T, bip::allocator< T, SegManagerOther > > m_delegate_edge_data
Definition: edge_data.hpp:98
template<typename SegmentManager >
template<typename T , typename SegManagerOther >
havoqgt::mpi::delegate_partitioned_graph< SegmentManager >::edge_data< T, SegManagerOther >::edge_data ( uint64_t  owned_size,
uint64_t  delegate_size,
const T &  init,
SegManagerOther *  sm 
)

Definition at line 118 of file edge_data.hpp.

119  : m_owned_edge_data(owned_size, init, sm->template get_allocator<T>())
120  , m_delegate_edge_data(delegate_size, init, sm->template get_allocator<T>()) { }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_owned_edge_data
Definition: edge_data.hpp:96
bip::vector< T, bip::allocator< T, SegManagerOther > > m_delegate_edge_data
Definition: edge_data.hpp:98

Member Function Documentation

template<typename SegementManager>
template<typename T , typename SegManagerOther >
iterator havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::delegate_begin ( )
inline

Definition at line 82 of file edge_data.hpp.

82 { return m_delegate_edge_data.begin(); }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_delegate_edge_data
Definition: edge_data.hpp:98
template<typename SegementManager>
template<typename T , typename SegManagerOther >
iterator havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::delegate_end ( )
inline

Definition at line 83 of file edge_data.hpp.

83 { return m_delegate_edge_data.end(); }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_delegate_edge_data
Definition: edge_data.hpp:98
template<typename SegmentManager >
template<typename T , typename SegManagerOther >
T & havoqgt::mpi::delegate_partitioned_graph< SegmentManager >::edge_data< T, SegManagerOther >::operator[] ( const edge_iterator itr)

Definition at line 126 of file edge_data.hpp.

126  {
127  if(itr.m_source.is_delegate()) {
128  assert(itr.m_edge_offset < m_delegate_edge_data.size());
129  return m_delegate_edge_data[itr.m_edge_offset];
130  }
131  assert(itr.m_edge_offset < m_owned_edge_data.size());
132  return m_owned_edge_data[itr.m_edge_offset];
133 }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_owned_edge_data
Definition: edge_data.hpp:96
bip::vector< T, bip::allocator< T, SegManagerOther > > m_delegate_edge_data
Definition: edge_data.hpp:98

Here is the call graph for this function:

template<typename SegmentManager >
template<typename T , typename SegManagerOther >
const T & havoqgt::mpi::delegate_partitioned_graph< SegmentManager >::edge_data< T, SegManagerOther >::operator[] ( const edge_iterator itr) const

Definition at line 138 of file edge_data.hpp.

138  {
139  if(itr.m_source.is_delegate()) {
140  assert(itr.m_edge_offset < m_delegate_edge_data.size());
141  return m_delegate_edge_data[itr.m_edge_offset];
142  }
143  assert(itr.m_edge_offset < m_owned_edge_data.size());
144  return m_owned_edge_data[itr.m_edge_offset];
145 }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_owned_edge_data
Definition: edge_data.hpp:96
bip::vector< T, bip::allocator< T, SegManagerOther > > m_delegate_edge_data
Definition: edge_data.hpp:98

Here is the call graph for this function:

template<typename SegementManager>
template<typename T , typename SegManagerOther >
iterator havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::owned_begin ( )
inline

Definition at line 84 of file edge_data.hpp.

84 { return m_owned_edge_data.begin(); }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_owned_edge_data
Definition: edge_data.hpp:96
template<typename SegementManager>
template<typename T , typename SegManagerOther >
iterator havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::owned_end ( )
inline

Definition at line 85 of file edge_data.hpp.

85 { return m_owned_edge_data.end(); }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_owned_edge_data
Definition: edge_data.hpp:96
template<typename SegementManager>
template<typename T , typename SegManagerOther >
void havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::reset ( const T &  r)
inline

Definition at line 73 of file edge_data.hpp.

73  {
74  for(size_t i=0; i<m_owned_edge_data.size(); ++i) {
75  m_owned_edge_data[i] = r;
76  }
77  for(size_t i=0; i<m_delegate_edge_data.size(); ++i) {
78  m_delegate_edge_data[i] = r;
79  }
80  }
bip::vector< T, bip::allocator< T, SegManagerOther > > m_owned_edge_data
Definition: edge_data.hpp:96
bip::vector< T, bip::allocator< T, SegManagerOther > > m_delegate_edge_data
Definition: edge_data.hpp:98

Member Data Documentation

template<typename SegementManager>
template<typename T , typename SegManagerOther >
bip::vector< T, bip::allocator<T, SegManagerOther> > havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::m_delegate_edge_data
private

Definition at line 98 of file edge_data.hpp.

template<typename SegementManager>
template<typename T , typename SegManagerOther >
bip::vector< T, bip::allocator<T, SegManagerOther> > havoqgt::mpi::delegate_partitioned_graph< SegementManager >::edge_data< T, SegManagerOther >::m_owned_edge_data
private

Definition at line 96 of file edge_data.hpp.


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