AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
IndirectionPolicies.hpp File Reference

Defines several indirection policies for slam. More...

Classes

class  axom::slam::policies::detail::IndexedIndirection< BasePolicy >
 Provides a mixin class for a generic indexable indirection policy. More...
 
struct  axom::slam::policies::NoIndirection< PositionType, ElementType >
 A policy class for sets with no indirection. More...
 
struct  axom::slam::policies::CArrayIndirectionBase< PositionType, ElementType >
 
struct  axom::slam::policies::STLVectorIndirectionBase< PositionType, ElementType >
 
struct  axom::slam::policies::ArrayIndirectionBase< PositionType, ElementType >
 
struct  axom::slam::policies::ArrayViewIndirectionBase< PositionType, ElementType >
 

Namespaces

 axom
 
 axom::slam
 
 axom::slam::policies
 
 axom::slam::policies::detail
 

Typedefs

OrderedSet_Indirection_Policies

A few default policies for the indirection of an OrderedSet

template<typename PositionType , typename ElementType >
using axom::slam::policies::CArrayIndirection = detail::IndexedIndirection< CArrayIndirectionBase< PositionType, ElementType > >
 A policy class for sets with C-style array-based indirection. More...
 
template<typename PositionType , typename ElementType >
using axom::slam::policies::STLVectorIndirection = detail::IndexedIndirection< STLVectorIndirectionBase< PositionType, ElementType > >
 A policy class for sets with stl vector-based indirection. More...
 
template<typename PositionType , typename ElementType >
using axom::slam::policies::ArrayIndirection = detail::IndexedIndirection< ArrayIndirectionBase< PositionType, ElementType > >
 A policy class for sets with axom::Array-based indirection. More...
 
template<typename PositionType , typename ElementType >
using axom::slam::policies::ArrayViewIndirection = detail::IndexedIndirection< ArrayViewIndirectionBase< PositionType, ElementType > >
 A policy class for sets with axom::ArrayView-based indirection. More...
 

Detailed Description

Defines several indirection policies for slam.

Indirection policies encompass the underlying storage for indirection buffers for a SLAM set, relation or map. A valid indirection policy must support the following interface:

  • [required]
  • type alias IndirectionResult – the type of the result of an indirection (const/nonconst and ref/nonref)
  • indirection() : IntType – returns the value of the element after indirection
  • hasIndirection(): bool – returns whether there is an indirection buffer
  • isValid() : bool – indicates whether the Indirection policy of the set is valid
  • [optional]
    • operator(): IntType – alternate accessor for indirection
    • data() : ElementType* – allows direct access to the underlying buffer (when this exists)
Note
Slam's Sets, Relations and Maps are not responsible for allocating/deallocating their own memory