ug4
|
You may add elements to this interface and iterate over them. More...
#include <pcl_communication_structs.h>
Classes | |
struct | InterfaceEntry |
struct | InterfaceEntryCmp |
Public Types | |
typedef interface_tags::ordered_interface_tag | category_tag |
typedef ElemContainer::const_iterator | const_iterator |
typedef type_traits< TType >::Elem | Element |
typedef ElemContainer::iterator | iterator |
typedef TType | Type |
Public Member Functions | |
iterator | begin () |
const_iterator | begin () const |
bool | empty () const |
iterator | end () |
const_iterator | end () const |
iterator | erase (iterator iter) |
template<class TCompare > | |
iterator | find_insert_pos_sorted (const Element e, TCompare cmp) |
find insertion position for an element to be inserted More... | |
const Element & | get_element (const_iterator iter) const |
Element & | get_element (iterator iter) |
size_t | get_local_id (const_iterator iter) const |
size_t | get_local_id (iterator iter) |
int | get_target_proc () const |
iterator | insert (const Element &elem, iterator insertBefore) |
Insert an element before the passed iterator. More... | |
OrderedInterface (int targetProc=-1) | |
iterator | push_back (const Element &elem) |
size_t | size () const |
returns the number of elements that are stored in the interface. More... | |
template<class TCompare > | |
void | sort (TCompare cmp) |
sort the entries in this interface. More... | |
void | swap (OrderedInterface &interface) |
swaps the content of two interfaces. More... | |
Static Public Member Functions | |
static bool | cmp (iterator iter1, iterator iter2, const std::input_iterator_tag &) |
returns true if iter1 < iter2. More... | |
Protected Types | |
typedef TContainer< InterfaceEntry, TAlloc< InterfaceEntry > > | ElemContainer |
typedef type_traits< TType >::Elem | TElem |
Protected Member Functions | |
size_t | get_free_id () |
returns a free id in each call. More... | |
Protected Attributes | |
ElemContainer | m_elements |
size_t | m_idCounter |
size_t | m_size |
int | m_targetProc |
You may add elements to this interface and iterate over them.
You may retrieve a localID for each element in the interface
typedef interface_tags::ordered_interface_tag pcl::OrderedInterface< TType, TContainer, TAlloc >::category_tag |
typedef ElemContainer::const_iterator pcl::OrderedInterface< TType, TContainer, TAlloc >::const_iterator |
|
protected |
typedef type_traits<TType>::Elem pcl::OrderedInterface< TType, TContainer, TAlloc >::Element |
typedef ElemContainer::iterator pcl::OrderedInterface< TType, TContainer, TAlloc >::iterator |
|
protected |
typedef TType pcl::OrderedInterface< TType, TContainer, TAlloc >::Type |
|
inline |
|
inline |
References pcl::OrderedInterface< TType, TContainer, TAlloc >::m_elements.
Referenced by ug::ComPol_VecCopy< TVector >::collect(), ug::ComPol_VecScaleCopy< TVector >::collect(), ug::ComPol_VecAdd< TVector >::collect(), ug::ComPol_VecScaleAdd< TVector >::collect(), ug::ComPol_VecAddSetZero< TVector >::collect(), ug::ComPol_VecSubtract< TVector >::collect(), ug::ComPol_CheckConsistency< TVector >::collect(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::collect(), ug::ComPol_MatDistributeDiag< TAlgebra >::collect(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatCopyRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::collect(), ug::CommunicationScheme< TDerived, TValue >::collect(), ug::CommunicationScheme< TDerived, bool >::collect(), ug::ComPol_MatCopyDiag< TMatrix >::collect(), ug::ComPol_MatCreateOverlap< TMatrix >::collect(), ug::ComPol_VecCopy< TVector >::extract(), ug::ComPol_VecScaleCopy< TVector >::extract(), ug::ComPol_VecAdd< TVector >::extract(), ug::ComPol_VecScaleAdd< TVector >::extract(), ug::ComPol_VecAddSetZero< TVector >::extract(), ug::ComPol_VecSubtract< TVector >::extract(), ug::ComPol_CheckConsistency< TVector >::extract(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::extract(), ug::ComPol_MatDistributeDiag< TAlgebra >::extract(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatCopyRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::extract(), ug::CommunicationScheme< TDerived, TValue >::extract(), ug::CommunicationScheme< TDerived, bool >::extract(), ug::ComPol_MatCopyDiag< TMatrix >::extract(), ug::ComPol_MatCreateOverlap< TMatrix >::extract(), pcl::OrderedInterface< TType, TContainer, TAlloc >::get_free_id(), ug::SlicingData< TVec, N >::replace_indices_in_layout(), ug::SerializeInterface(), and ug::SetInterfaceValues().
|
inline |
|
inlinestatic |
returns true if iter1 < iter2.
Referenced by pcl::OrderedInterface< TType, TContainer, TAlloc >::find_insert_pos_sorted(), and pcl::OrderedInterface< TType, TContainer, TAlloc >::sort().
|
inline |
|
inline |
References pcl::OrderedInterface< TType, TContainer, TAlloc >::m_elements.
Referenced by ug::ComPol_VecCopy< TVector >::collect(), ug::ComPol_VecScaleCopy< TVector >::collect(), ug::ComPol_VecAdd< TVector >::collect(), ug::ComPol_VecScaleAdd< TVector >::collect(), ug::ComPol_VecAddSetZero< TVector >::collect(), ug::ComPol_VecSubtract< TVector >::collect(), ug::ComPol_CheckConsistency< TVector >::collect(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::collect(), ug::ComPol_MatDistributeDiag< TAlgebra >::collect(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatCopyRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::collect(), ug::CommunicationScheme< TDerived, TValue >::collect(), ug::CommunicationScheme< TDerived, bool >::collect(), ug::ComPol_MatCopyDiag< TMatrix >::collect(), ug::ComPol_MatCreateOverlap< TMatrix >::collect(), ug::ComPol_VecCopy< TVector >::extract(), ug::ComPol_VecScaleCopy< TVector >::extract(), ug::ComPol_VecAdd< TVector >::extract(), ug::ComPol_VecScaleAdd< TVector >::extract(), ug::ComPol_VecAddSetZero< TVector >::extract(), ug::ComPol_VecSubtract< TVector >::extract(), ug::ComPol_CheckConsistency< TVector >::extract(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::extract(), ug::ComPol_MatDistributeDiag< TAlgebra >::extract(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatCopyRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::extract(), ug::CommunicationScheme< TDerived, TValue >::extract(), ug::CommunicationScheme< TDerived, bool >::extract(), ug::ComPol_MatCopyDiag< TMatrix >::extract(), ug::ComPol_MatCreateOverlap< TMatrix >::extract(), pcl::OrderedInterface< TType, TContainer, TAlloc >::get_free_id(), pcl::OrderedInterface< TType, TContainer, TAlloc >::insert(), ug::SlicingData< TVec, N >::replace_indices_in_layout(), ug::SerializeInterface(), and ug::SetInterfaceValues().
|
inline |
|
inline |
|
inline |
find insertion position for an element to be inserted
References pcl::OrderedInterface< TType, TContainer, TAlloc >::cmp(), and pcl::OrderedInterface< TType, TContainer, TAlloc >::m_elements.
|
inline |
|
inline |
Referenced by ug::DoFDistribution::add_indices_from_layouts(), ug::AddEntriesToIndexLayout_DomainDecomposition(), ug::AddEntriesToSurfaceIndexLayout(), ug::ParallelVector< TVector >::check_storage_type(), ug::ComPol_VecCopy< TVector >::collect(), ug::ComPol_VecScaleCopy< TVector >::collect(), ug::ComPol_VecAdd< TVector >::collect(), ug::ComPol_VecScaleAdd< TVector >::collect(), ug::ComPol_VecAddSetZero< TVector >::collect(), ug::ComPol_VecSubtract< TVector >::collect(), ug::ComPol_CheckConsistency< TVector >::collect(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::collect(), ug::ComPol_MatDistributeDiag< TAlgebra >::collect(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatCopyRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::collect(), ug::CommunicationScheme< TDerived, TValue >::collect(), ug::CommunicationScheme< TDerived, bool >::collect(), ug::ComPol_MatCopyDiag< TMatrix >::collect(), ug::ComPol_MatCreateOverlap< TMatrix >::collect(), ug::CopyInterfaceEntrysToDomainDecompositionLayouts(), ug::ComPol_VecCopy< TVector >::extract(), ug::ComPol_VecScaleCopy< TVector >::extract(), ug::ComPol_VecAdd< TVector >::extract(), ug::ComPol_VecScaleAdd< TVector >::extract(), ug::ComPol_VecAddSetZero< TVector >::extract(), ug::ComPol_VecSubtract< TVector >::extract(), ug::ComPol_CheckConsistency< TVector >::extract(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::extract(), ug::ComPol_MatDistributeDiag< TAlgebra >::extract(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatCopyRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::extract(), ug::CommunicationScheme< TDerived, TValue >::extract(), ug::CommunicationScheme< TDerived, bool >::extract(), ug::ComPol_MatCopyDiag< TMatrix >::extract(), ug::ComPol_MatCreateOverlap< TMatrix >::extract(), ug::GetHighestReferencedIndex(), ug::MatExtractDiagOnLayout(), ug::MatWriteDiagOnLayout(), ug::PermuteIndicesInIndexLayout(), ug::SlicingData< TVec, N >::replace_indices_in_layout(), ug::ScaleLayoutValues(), ug::SerializeInterface(), ug::SetInterfaceValues(), and ug::SetLayoutValues().
|
inlineprotected |
returns a free id in each call.
Those ids are not necessarily aligned.
References pcl::OrderedInterface< TType, TContainer, TAlloc >::begin(), pcl::OrderedInterface< TType, TContainer, TAlloc >::end(), and pcl::OrderedInterface< TType, TContainer, TAlloc >::m_idCounter.
Referenced by pcl::OrderedInterface< TType, TContainer, TAlloc >::insert(), and pcl::OrderedInterface< TType, TContainer, TAlloc >::push_back().
|
inline |
|
inline |
|
inline |
References pcl::OrderedInterface< TType, TContainer, TAlloc >::m_targetProc.
Referenced by ug::CommunicationScheme< TDerived, TValue >::collect(), ug::CommunicationScheme< TDerived, bool >::collect(), ug::CommunicationScheme< TDerived, TValue >::extract(), ug::CommunicationScheme< TDerived, bool >::extract(), ug::ComPol_MatCreateOverlap< TMatrix >::extract(), and ug::ComPol_MatCreateOverlap< TMatrix >::post_process().
|
inline |
Insert an element before the passed iterator.
The insertion iterator is best determined using the find_insert_pos_sorted() method designed for this purpose.
References pcl::OrderedInterface< TType, TContainer, TAlloc >::end(), pcl::OrderedInterface< TType, TContainer, TAlloc >::get_free_id(), pcl::OrderedInterface< TType, TContainer, TAlloc >::m_elements, and pcl::OrderedInterface< TType, TContainer, TAlloc >::m_size.
|
inline |
References pcl::OrderedInterface< TType, TContainer, TAlloc >::get_free_id(), pcl::OrderedInterface< TType, TContainer, TAlloc >::m_elements, and pcl::OrderedInterface< TType, TContainer, TAlloc >::m_size.
Referenced by ug::DistributedGridManager::add_element_to_interface(), ug::AddConnectionsBetweenSlaves(), ug::AddExtraProcessEntriesToSubdomainLayout(), ug::AddLayoutFromGlobalLayout(), ug::BuildOneToManyLayout(), ug::DeserializeInterface(), ug::ComPol_MatCreateOverlap< TMatrix >::post_process(), ug::ReceiveMatrix(), and ug::SendMatrix().
|
inline |
returns the number of elements that are stored in the interface.
References pcl::OrderedInterface< TType, TContainer, TAlloc >::m_size.
Referenced by ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::collect(), pcl::OrderedInterface< TType, TContainer, TAlloc >::empty(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::extract(), ug::ComPol_VecCopy< TVector >::get_required_buffer_size(), ug::ComPol_VecScaleCopy< TVector >::get_required_buffer_size(), ug::ComPol_VecAdd< TVector >::get_required_buffer_size(), ug::ComPol_VecScaleAdd< TVector >::get_required_buffer_size(), ug::ComPol_VecAddSetZero< TVector >::get_required_buffer_size(), ug::ComPol_VecSubtract< TVector >::get_required_buffer_size(), ug::ComPol_CheckConsistency< TVector >::get_required_buffer_size(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::get_required_buffer_size(), ug::ComPol_MatDistributeDiag< TAlgebra >::get_required_buffer_size(), ug::CommunicationScheme< TDerived, TValue >::get_required_buffer_size(), ug::CommunicationScheme< TDerived, bool >::get_required_buffer_size(), ug::ComPol_MatCopyDiag< TMatrix >::get_required_buffer_size(), ug::NumIndices(), ug::BGLParallelMatrix< T >::refresh(), and ug::SerializeInterface().
|
inline |
sort the entries in this interface.
References pcl::OrderedInterface< TType, TContainer, TAlloc >::cmp(), pcl::OrderedInterface< TType, TContainer, TAlloc >::m_elements, and pcl::OrderedInterface< TType, TContainer, TAlloc >::m_idCounter.
|
inline |
swaps the content of two interfaces.
m_elements, m_size, m_targetProc and m_idCounter are swapped.
References pcl::OrderedInterface< TType, TContainer, TAlloc >::m_elements, pcl::OrderedInterface< TType, TContainer, TAlloc >::m_idCounter, pcl::OrderedInterface< TType, TContainer, TAlloc >::m_size, and pcl::OrderedInterface< TType, TContainer, TAlloc >::m_targetProc.
|
protected |
Referenced by pcl::OrderedInterface< TType, TContainer, TAlloc >::begin(), pcl::OrderedInterface< TType, TContainer, TAlloc >::end(), pcl::OrderedInterface< TType, TContainer, TAlloc >::erase(), pcl::OrderedInterface< TType, TContainer, TAlloc >::find_insert_pos_sorted(), pcl::OrderedInterface< TType, TContainer, TAlloc >::insert(), pcl::OrderedInterface< TType, TContainer, TAlloc >::push_back(), pcl::OrderedInterface< TType, TContainer, TAlloc >::sort(), and pcl::OrderedInterface< TType, TContainer, TAlloc >::swap().
|
protected |
|
protected |
Referenced by pcl::OrderedInterface< TType, TContainer, TAlloc >::erase(), pcl::OrderedInterface< TType, TContainer, TAlloc >::insert(), pcl::OrderedInterface< TType, TContainer, TAlloc >::push_back(), pcl::OrderedInterface< TType, TContainer, TAlloc >::size(), and pcl::OrderedInterface< TType, TContainer, TAlloc >::swap().
|
protected |