|
dune-fem 2.12-git
|
Loading...
Searching...
No Matches
Classes |
Public Types |
Public Member Functions |
Static Public Member Functions |
Static Protected Member Functions |
List of all members
Dune::Fem::SingletonList< Key, Object, Factory > Class Template Reference
Singleton list for key/object pairs. More...
#include <dune/fem/storage/singletonlist.hh>
Classes | |
| struct | Deleter |
Public Types | |
| typedef Key | KeyType |
| typedef Object | ObjectType |
| typedef Factory | FactoryType |
| typedef std ::pair< ObjectType *, unsigned int * > | ValueType |
| typedef std ::pair< KeyType, ValueType > | ListObjType |
Public Member Functions | |
| SingletonList ()=delete | |
| SingletonList (const ThisType &)=delete | |
Static Public Member Functions | |
| static ListType & | singletonList () |
| template<class... Args> | |
| static auto | getObject (const KeyType &key, Args &&... args) -> std::enable_if_t< std::is_same< decltype(FactoryType::createObject(key, std::forward< Args >(args)...)), ObjectType * >::value, ObjectType & > |
| static void | removeObject (const ObjectType &object) |
| static ValueType | getObjFromList (const KeyType &key) |
Static Protected Member Functions | |
| static void | eraseItem (ListIteratorType &it) |
Detailed Description
template<class Key, class Object, class Factory = DefaultSingletonFactory< Key, Object >>
class Dune::Fem::SingletonList< Key, Object, Factory >
class Dune::Fem::SingletonList< Key, Object, Factory >
Singleton list for key/object pairs.
A singleton list guarantees that for any valid key at most one object is created.
- Parameters
-
Key type of keys Object type of objects Factory factory class creating objects from keys. The default just passes the key to the object's constructor.
Member Typedef Documentation
◆ FactoryType
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
| typedef Factory Dune::Fem::SingletonList< Key, Object, Factory >::FactoryType |
◆ KeyType
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
| typedef Key Dune::Fem::SingletonList< Key, Object, Factory >::KeyType |
◆ ListObjType
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
| typedef std :: pair< KeyType, ValueType > Dune::Fem::SingletonList< Key, Object, Factory >::ListObjType |
◆ ObjectType
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
| typedef Object Dune::Fem::SingletonList< Key, Object, Factory >::ObjectType |
◆ ValueType
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
| typedef std :: pair< ObjectType * , unsigned int * > Dune::Fem::SingletonList< Key, Object, Factory >::ValueType |
Constructor & Destructor Documentation
◆ SingletonList() [1/2]
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
|
delete |
◆ SingletonList() [2/2]
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
|
delete |
Member Function Documentation
◆ eraseItem()
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
|
inlinestaticprotected |
◆ getObject()
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
template<class... Args>
|
inlinestatic |
return reference to the object for given key. If the object does not exist, then it is created first, otherwise the reference counter is increased.
◆ getObjFromList()
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
|
inlinestatic |
◆ removeObject()
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
|
inlinestatic |
decrease ref counter for this object, if ref counter is zero, object is deleted
◆ singletonList()
template<class Key , class Object , class Factory = DefaultSingletonFactory< Key, Object >>
|
inlinestatic |
list that store pairs of key/object pointers singleton list
list that store pairs of key/object pointers
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8