1#ifndef DUNE_FEM_OBJECTSTACK_HH
2#define DUNE_FEM_OBJECTSTACK_HH
13 template<
class ObjectFactoryImp >
16 template<
class ObjectFactoryImp >
17 class ObjectStackEntry;
20 template<
class ObjectFactoryImp >
25 typedef typename ObjectFactoryImp :: ObjectType
ObjectType;
29 template<
class ObjectFactoryImp >
48 typedef typename ObjectFactoryType :: ObjectType
ObjectType;
108 template<
class ObjectFactoryImp >
111 typedef ObjectFactoryImp ObjectFactoryType;
154 for(
size_t i=0; i<threadSize; ++i )
157 while ( stackEntry != 0 )
160 stackEntry = obj->
next_;
175 inline const ObjectFactoryType &
factory()
const
198 obj->next_ = stackEntry;
207 stackEntry = stackEntry->next_;
Definition: bindguard.hh:11
static bool singleThreadMode()
returns true if program is operating on one thread currently
Definition: mpimanager.hh:436
size_t size() const
return number of threads
Definition: threadsafevalue.hh:48
Definition: objectstack.hh:110
~ObjectStack()
delete all objects on stack
Definition: objectstack.hh:148
ObjectFactoryType::ObjectType ObjectType
type of the stored objects
Definition: objectstack.hh:120
ThreadSafeValuesType stackEntries_
Definition: objectstack.hh:136
ObjectStack(const ObjectFactoryType &factory)
constructor
Definition: objectstack.hh:139
const ObjectFactoryType & factory() const
Definition: objectstack.hh:175
ThreadSafeValue< StackEntryPtrType > ThreadSafeValuesType
Definition: objectstack.hh:133
ObjectStack(const ThisType &)=delete
StackEntryType * StackEntryPtrType
Definition: objectstack.hh:132
ThisType & operator=(const ThisType &)=delete
StackEntryType * pop()
Definition: objectstack.hh:188
ObjectStackEntry< ObjectFactoryType > StackEntryType
type of the storage objects
Definition: objectstack.hh:123
const ObjectFactoryType & factory_
Definition: objectstack.hh:129
void push(StackEntryType *obj)
Definition: objectstack.hh:181
PointerType getObject()
get an object pointer to a storage object
Definition: objectstack.hh:169
ObjectPointer< StackEntryType > PointerType
type of object pointers
Definition: objectstack.hh:126
Definition: objectstack.hh:32
ObjectStackEntry(ObjectStackType &stack)
Definition: objectstack.hh:60
const ObjectType & getObject() const
Definition: objectstack.hh:92
ObjectType & getObject()
Definition: objectstack.hh:97
ObjectStackType & stack_
Definition: objectstack.hh:52
ObjectStackEntryTraits< ObjectFactoryType > Traits
Definition: objectstack.hh:36
void deleteObject()
Definition: objectstack.hh:87
ObjectStack< ObjectFactoryType > ObjectStackType
Definition: objectstack.hh:45
ThisType & operator=(const ThisType &)=delete
ObjectType *const object_
Definition: objectstack.hh:55
ThisType * next_
Definition: objectstack.hh:58
~ObjectStackEntry()
Definition: objectstack.hh:70
ObjectStackEntry(const ThisType &)=delete
ObjectFactoryType::ObjectType ObjectType
Definition: objectstack.hh:48
ObjectFactoryImp ObjectFactoryType
Definition: objectstack.hh:34
Definition: objectstack.hh:22
ObjectStackEntry< ObjectFactoryImp > ReferenceCounterType
Definition: objectstack.hh:23
ObjectFactoryImp::ObjectType ObjectType
Definition: objectstack.hh:25
default implementation of ReferenceCounterInterface
Definition: referencecounter.hh:154
models a pointer to a reference countable object
Definition: referencecounter.hh:224