SG::AuxElement::ConstAccessor< T > Class Template Reference

Helper class to provide constant type-safe access to aux data. More...

#include <AuxElement.h>

Inheritance diagram for SG::AuxElement::ConstAccessor< T >:
SG::AuxElement::Accessor< T >

List of all members.

Public Types

typedef AuxDataTraits< T >
::const_reference_type 
const_reference_type
 Type referencing an item.
typedef AuxDataTraits< T >
::const_container_pointer_type 
const_container_pointer_type
 Pointer into the container holding this item.

Public Member Functions

 ConstAccessor (const std::string &name)
 Constructor.
 ConstAccessor (const std::string &name, const std::string &clsname)
 Constructor.
const_reference_type operator() (const AuxElement &e) const
 Fetch the variable for one element, as a const reference.
const_reference_type operator() (const AuxVectorData &container, size_t index) const
 Fetch the variable for one element, as a const reference.
const_container_pointer_type getDataArray (const AuxVectorData &container) const
 Get a pointer to the start of the auxiliary data array.
bool isAvailable (const AuxElement &e) const
 Test to see if this variable exists in the store.
SG::auxid_t auxid () const
 Return the aux id for this variable.

Protected Attributes

SG::auxid_t m_auxid
 The cached auxid.

Detailed Description

template<class T>
class SG::AuxElement::ConstAccessor< T >

Helper class to provide constant type-safe access to aux data.

This is written as a separate class in order to be able to cache the name -> auxid lookup.

You might use this something like this:

   // Only need to do this once.
   Myclass::ConstAccessor<int> vint1 ("myInt");
   ...
   const Myclass* m = ...;
   int x = vint1 (*m);

This class can be used only for reading data. To modify data, see the class Accessor.


Constructor & Destructor Documentation

template<class T >
SG::AuxElement::ConstAccessor< T >::ConstAccessor ( const std::string &  name  )  [inline]

Constructor.

Parameters:
name Name of this aux variable.

The name -> auxid lookup is done here.

template<class T >
SG::AuxElement::ConstAccessor< T >::ConstAccessor ( const std::string &  name,
const std::string &  clsname 
) [inline]

Constructor.

Parameters:
name Name of this aux variable.
clsname The name of its associated class. May be blank.

The name -> auxid lookup is done here.


Member Function Documentation

template<class T >
AuxElement::ConstAccessor< T >::const_container_pointer_type SG::AuxElement::ConstAccessor< T >::getDataArray ( const AuxVectorData container  )  const [inline]

Get a pointer to the start of the auxiliary data array.

Parameters:
container The container from which to fetch the variable.
template<class T >
bool SG::AuxElement::ConstAccessor< T >::isAvailable ( const AuxElement e  )  const [inline]

Test to see if this variable exists in the store.

Parameters:
e An element of the container which to test the variable.
template<class T >
AuxElement::ConstAccessor< T >::const_reference_type SG::AuxElement::ConstAccessor< T >::operator() ( const AuxVectorData container,
size_t  index 
) const [inline]

Fetch the variable for one element, as a const reference.

Parameters:
container The container from which to fetch the variable.
index The index of the desired element.

This allows retrieving aux data by container / index. Looping over the index via this method will be faster then looping over the elements of the container.

template<class T >
AuxElement::ConstAccessor< T >::const_reference_type SG::AuxElement::ConstAccessor< T >::operator() ( const AuxElement e  )  const [inline]

Fetch the variable for one element, as a const reference.

Parameters:
e The element for which to fetch the variable.

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 1 Dec 2017 for RootCore Packages by  doxygen 1.6.1