dune-fem  2.4.1-rc
tmpmem.hh
Go to the documentation of this file.
1 #ifndef __OEM_TMPMEM_HH__
2 #define __OEM_TMPMEM_HH__
3 
4 #include <cassert>
5 
6 // temporay mem
7 class OEMTmpMem
8 {
9  double * mem_;
10  int memSize_;
11  int freeSize_;
12 public:
13  OEMTmpMem () : mem_ (0) , memSize_ (0), freeSize_(0)
14  {}
15 
17  {
18  if(mem_) delete [] mem_;
19  }
20 
21  void resize ( int newMemSize )
22  {
23  if(newMemSize > memSize_)
24  {
25  if(mem_) delete [] mem_;
26  mem_ = new double [newMemSize];
27  memSize_ = newMemSize;
28  freeSize_ = memSize_;
29  }
30  }
31 
32  double * getMem ( int size )
33  {
34  freeSize_ -= size;
35  assert(freeSize_ >= 0);
36  return mem_ + freeSize_;
37  }
38 
39  void reset ()
40  {
41  freeSize_ = memSize_;
42  }
43 };
44 
45 #endif // #ifndef __OEM_TMPMEM_HH__
void resize(int newMemSize)
Definition: tmpmem.hh:21
void reset()
Definition: tmpmem.hh:39
Definition: tmpmem.hh:7
double * getMem(int size)
Definition: tmpmem.hh:32
OEMTmpMem()
Definition: tmpmem.hh:13
~OEMTmpMem()
Definition: tmpmem.hh:16