3.4.0
tigl::Cache< CacheStruct, CpacsClass > Class Template Reference

#include <Cache.h>

Public Types

typedef void(CpacsClass::* BuildFunc) (CacheStruct &) const
 

Public Member Functions

 Cache (CpacsClass &instance, BuildFunc buildFunc)
 
void clear () const
 
const CacheStruct & operator * () const
 
const CacheStruct * operator-> () const
 
const CacheStruct & value () const
 
ScopeLockedReference< CacheStruct > writeAccess ()
 

Private Attributes

BuildFunc m_buildFunc
 
boost::optional< CacheStruct > m_cache
 
CpacsClass & m_instance
 
boost::mutex m_mutex
 

Member Typedef Documentation

◆ BuildFunc

template<typename CacheStruct, typename CpacsClass>
typedef void(CpacsClass::* tigl::Cache< CacheStruct, CpacsClass >::BuildFunc) (CacheStruct &) const

Constructor & Destructor Documentation

◆ Cache()

template<typename CacheStruct, typename CpacsClass>
tigl::Cache< CacheStruct, CpacsClass >::Cache ( CpacsClass &  instance,
BuildFunc  buildFunc 
)
inline

Member Function Documentation

◆ clear()

template<typename CacheStruct, typename CpacsClass>
void tigl::Cache< CacheStruct, CpacsClass >::clear ( ) const
inline

◆ operator *()

template<typename CacheStruct, typename CpacsClass>
const CacheStruct& tigl::Cache< CacheStruct, CpacsClass >::operator * ( ) const
inline

◆ operator->()

template<typename CacheStruct, typename CpacsClass>
const CacheStruct* tigl::Cache< CacheStruct, CpacsClass >::operator-> ( ) const
inline

◆ value()

template<typename CacheStruct, typename CpacsClass>
const CacheStruct& tigl::Cache< CacheStruct, CpacsClass >::value ( ) const
inline

◆ writeAccess()

template<typename CacheStruct, typename CpacsClass>
ScopeLockedReference<CacheStruct> tigl::Cache< CacheStruct, CpacsClass >::writeAccess ( )
inline

Field Documentation

◆ m_buildFunc

template<typename CacheStruct, typename CpacsClass>
BuildFunc tigl::Cache< CacheStruct, CpacsClass >::m_buildFunc
private

◆ m_cache

template<typename CacheStruct, typename CpacsClass>
boost::optional<CacheStruct> tigl::Cache< CacheStruct, CpacsClass >::m_cache
mutableprivate

◆ m_instance

template<typename CacheStruct, typename CpacsClass>
CpacsClass& tigl::Cache< CacheStruct, CpacsClass >::m_instance
private

◆ m_mutex

template<typename CacheStruct, typename CpacsClass>
boost::mutex tigl::Cache< CacheStruct, CpacsClass >::m_mutex
mutableprivate

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