1 #ifndef DUNE_ALU3DGRIDMEMORY_HH
2 #define DUNE_ALU3DGRIDMEMORY_HH
10 template<
class T,
int length>
17 template <
class Object>
18 class ALUMemoryProvider
20 enum { maxStackObjects = 256 };
24 typedef ALUMemoryProvider < Object > MyType;
26 StackType& objStack() {
return objStack_ ; }
36 : objStack_( org.objStack_ )
43 template <
class FactoryType>
47 template <
class FactoryType,
class EntityImp>
50 if( objStack().empty() )
52 return (
new ObjectType(EntityImp(factory,level) ));
69 assert( ! objStack().empty() );
71 return objStack().pop();
82 template <
class Object>
template <
class FactoryType>
83 inline typename ALUMemoryProvider<Object>::ObjectType *
85 (
const FactoryType &factory,
int level )
87 if( objStack().empty() )
89 return (
new Object (factory, level) );
97 template <
class Object>
102 if( objStack().empty() )
104 return (
new Object (org) );
108 return stackObject();
112 template <
class Object>
116 while ( ! objStk.empty() )
123 template <
class Object>
133 #undef USE_FINITE_STACK