STADLS
stadls::ReadAddressVisitor< T > Struct Template Reference

Extract addresses for reading from hardware for the visited containers. More...

#include <visitors.h>

Public Member Functions

template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &, ContainerT const &) -> typename std::enable_if<!ContainerT::has_local_data::value >::type
 
template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &coord, ContainerT const &container) -> decltype(container.addresses(coord), void())
 
template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &coord, ContainerT const &container) -> decltype(container.read_addresses(coord), void())
 
template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &coord, ContainerT const &container) -> decltype(container.template addresses< typename T::value_type >(coord), void())
 
template<typename CoordinateT , typename ContainerT >
auto operator() (CoordinateT const &coord, ContainerT const &container) -> decltype(container.template read_addresses< typename T::value_type >(coord), void())
 

Public Attributes

T & addresses
 

Detailed Description

template<typename T>
struct stadls::ReadAddressVisitor< T >

Extract addresses for reading from hardware for the visited containers.

Each container can provide addresses via a read_addresses member function or via a addresses member function in case the addresses for reading and writing are the same. Containers that do not themselves contain data to be read from the hardware (i.e. containers of containers) can alternatively be tagged via

typedef std::false_type has_local_data;

Definition at line 20 of file visitors.h.

Member Function Documentation

◆ operator()() [1/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::ReadAddressVisitor< T >::operator() ( CoordinateT const &  ,
ContainerT const &   
) -> typename std::enable_if<!ContainerT::has_local_data::value>::type
inline

Definition at line 58 of file visitors.h.

◆ operator()() [2/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::ReadAddressVisitor< T >::operator() ( CoordinateT const &  coord,
ContainerT const &  container 
) -> decltype(container.addresses(coord), void())
inline

Definition at line 25 of file visitors.h.

◆ operator()() [3/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::ReadAddressVisitor< T >::operator() ( CoordinateT const &  coord,
ContainerT const &  container 
) -> decltype(container.read_addresses(coord), void())
inline

Definition at line 33 of file visitors.h.

◆ operator()() [4/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::ReadAddressVisitor< T >::operator() ( CoordinateT const &  coord,
ContainerT const &  container 
) -> decltype(container.template addresses<typename T::value_type>(coord), void())
inline

Definition at line 41 of file visitors.h.

◆ operator()() [5/5]

template<typename T >
template<typename CoordinateT , typename ContainerT >
auto stadls::ReadAddressVisitor< T >::operator() ( CoordinateT const &  coord,
ContainerT const &  container 
) -> decltype(container.template read_addresses<typename T::value_type>(coord), void())
inline

Definition at line 49 of file visitors.h.

Member Data Documentation

◆ addresses

template<typename T >
T& stadls::ReadAddressVisitor< T >::addresses

Definition at line 22 of file visitors.h.


The documentation for this struct was generated from the following file: