ATLAS Offline Software
Loading...
Searching...
No Matches
Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy > Struct Template Reference

#include <ProxyContainer.h>

Collaboration diagram for Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >:

Public Types

using ContainerPtr = std::conditional_t< ptrAccessPolicy == AccessPolicy::ReadOnly, const Container *, Container *>

Public Member Functions

template<AccessPolicy otherAccessPolicy>
requires ( otherAccessPolicy==ptrAccessPolicy || otherAccessPolicy == AccessPolicy::ReadWrite)
 ContainerPtrBase (ContainerPtrBase< otherAccessPolicy > container)
 ContainerPtrBase (const Container *container)
 ContainerPtrBase (Container *container)
bool isValid () const
const Containercontainer () const
Containercontainer ()
const Containercptr () const
Containerptr ()
template<AccessPolicy otherAccessPolicy>
requires (ptrAccessPolicy==AccessPolicy::ReadWrite)
auto accessPtr ()
template<AccessPolicy otherAccessPolicy>
requires (otherAccessPolicy==AccessPolicy::ReadOnly)
auto accessPtr () const
 operator bool () const
const Containeroperator* () const
Containeroperator* ()
template<AccessPolicy otherAccessPolicy>
bool operator== (const ContainerPtrBase< otherAccessPolicy > &other) const

Private Attributes

ContainerPtr m_container

Friends

template<AccessPolicy IteratorAccessPolicy>
class iterator_base
template<class _Container, class _T_Derived, class _ElementProxy, typename _RangeType, AccessPolicy _accessPolicy>
struct ContainerProxy

Detailed Description

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
struct Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >

Definition at line 103 of file ProxyContainer.h.

Member Typedef Documentation

◆ ContainerPtr

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
using Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::ContainerPtr = std::conditional_t< ptrAccessPolicy == AccessPolicy::ReadOnly, const Container *, Container *>

Definition at line 107 of file ProxyContainer.h.

Constructor & Destructor Documentation

◆ ContainerPtrBase() [1/3]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
template<AccessPolicy otherAccessPolicy>
requires ( otherAccessPolicy==ptrAccessPolicy || otherAccessPolicy == AccessPolicy::ReadWrite)
Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::ContainerPtrBase ( ContainerPtrBase< otherAccessPolicy > container)
inline

Definition at line 117 of file ProxyContainer.h.

◆ ContainerPtrBase() [2/3]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::ContainerPtrBase ( const Container * container)
inline

Definition at line 121 of file ProxyContainer.h.

◆ ContainerPtrBase() [3/3]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::ContainerPtrBase ( Container * container)
inline

Definition at line 124 of file ProxyContainer.h.

Member Function Documentation

◆ accessPtr() [1/2]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
template<AccessPolicy otherAccessPolicy>
requires (ptrAccessPolicy==AccessPolicy::ReadWrite)
auto Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::accessPtr ( )
inline

Definition at line 146 of file ProxyContainer.h.

146 {
148 return this->ptr();
149 }
150 else {
151 return this->cptr();
152 }
153 }
Base class of a container proxy.

◆ accessPtr() [2/2]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
template<AccessPolicy otherAccessPolicy>
requires (otherAccessPolicy==AccessPolicy::ReadOnly)
auto Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::accessPtr ( ) const
inline

Definition at line 157 of file ProxyContainer.h.

159 {
160 return this->cptr();
161 }

◆ container() [1/2]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
Container & Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::container ( )
inline

Definition at line 135 of file ProxyContainer.h.

◆ container() [2/2]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
const Container & Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::container ( ) const
inline

Definition at line 132 of file ProxyContainer.h.

132{ assert(isValid()); return *m_container; }

◆ cptr()

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
const Container * Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::cptr ( ) const
inline

Definition at line 139 of file ProxyContainer.h.

139{return m_container; }

◆ isValid()

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
bool Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::isValid ( ) const
inline

Definition at line 128 of file ProxyContainer.h.

128{ return m_container != nullptr; }

◆ operator bool()

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::operator bool ( ) const
inline

Definition at line 164 of file ProxyContainer.h.

164{ return isValid(); }

◆ operator*() [1/2]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
Container & Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::operator* ( )
inline

Definition at line 171 of file ProxyContainer.h.

171{ return container(); }

◆ operator*() [2/2]

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
const Container & Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::operator* ( ) const
inline

Definition at line 168 of file ProxyContainer.h.

168{ return container(); }

◆ operator==()

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
template<AccessPolicy otherAccessPolicy>
bool Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::operator== ( const ContainerPtrBase< otherAccessPolicy > & other) const
inline

Definition at line 175 of file ProxyContainer.h.

175{ return m_container == other.m_container; }
ContainerPtrBase< accessPolicy > m_container

◆ ptr()

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
Container * Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::ptr ( )
inline

Definition at line 141 of file ProxyContainer.h.

141{return m_container; }

◆ ContainerProxy

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
template<class _Container, class _T_Derived, class _ElementProxy, typename _RangeType, AccessPolicy _accessPolicy>
friend struct ContainerProxy
friend

Definition at line 114 of file ProxyContainer.h.

◆ iterator_base

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
template<AccessPolicy IteratorAccessPolicy>
friend class iterator_base
friend

Definition at line 105 of file ProxyContainer.h.

Member Data Documentation

◆ m_container

template<class Container, typename ElementIndexType, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
template<AccessPolicy ptrAccessPolicy = accessPolicy>
ContainerPtr Utils::ContainerProxyBase< Container, ElementIndexType, accessPolicy >::ContainerPtrBase< ptrAccessPolicy >::m_container
private

Definition at line 177 of file ProxyContainer.h.


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