3 #ifndef DUNE_ALU3DGRIDMEMORY_HH
4 #define DUNE_ALU3DGRIDMEMORY_HH
10 namespace ALUGridSpace
12 template<
class T,
int length>
13 class ALUGridFiniteStack ;
19 template <
class Object>
22 enum { maxStackObjects = 256 };
23 typedef ALUGridSpace :: ALUGridFiniteStack< Object* , maxStackObjects > StackType ;
28 StackType& objStack() {
return objStack_ ; }
38 : objStack_( org.objStack_ )
45 template <
class FactoryType>
49 template <
class FactoryType,
class EntityImp>
52 if( objStack().empty() )
54 return (
new ObjectType(EntityImp(factory,level) ));
74 assert( ! objStack().empty() );
76 return objStack().pop();
87 template <
class Object>
template <
class FactoryType>
88 inline typename ALUMemoryProvider<Object>::ObjectType *
90 (
const FactoryType &factory,
int level )
92 if( objStack().empty() )
94 return (
new Object (factory, level) );
102 template <
class Object>
107 if( objStack().empty() )
109 return (
new Object (org) );
113 return stackObject();
117 template <
class Object>
121 if( objStack().empty() )
123 return new Object () ;
127 return stackObject();
131 template <
class Object>
134 StackType& objStk = objStack_;
135 while ( ! objStk.empty() )
142 template <
class Object>
145 StackType& stk = objStack();
152 #undef USE_FINITE_STACK