dune-fem  2.4.1-rc
objpointer.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_OBJPOINTER_HH
2 #define DUNE_FEM_OBJPOINTER_HH
3 
4 namespace Dune
5 {
6 
7  namespace Fem
8  {
9 
12  template <class ObjType>
13  struct ObjPointer
14  {
17  ObjType * item;
18  ObjPointerType *next;
19 
21  ObjPointer () : item (0) , next (0) {}
22 
24  ObjPointer (ObjType *t) : item (t) , next (0) {}
25 
28  virtual ~ObjPointer ()
29  {
30  if(next) delete next; next = 0;
31  if(item) delete item; item = 0;
32  }
33  };
34 
38  {
39  typedef ObjPointerStorage MyType;
40  public:
42  ObjPointerStorage () : item_ (0) {}
43 
45  virtual ~ObjPointerStorage ()
46  {
47  if(item_) delete item_; item_ = 0;
48  }
49 
51  template <class DiscrOpType>
52  void saveObjPointer ( DiscrOpType * discrOp )
53  {
54  ObjPointerType *next = new ObjPointerType ( discrOp );
55  next->next = item_;
56  item_ = next;
57  }
58 
61  template <class DiscrOpType, class LocalOpType >
62  void saveObjPointer ( DiscrOpType * discrOp , LocalOpType * lop )
63  {
64  saveObjPointer( discrOp );
65  saveObjPointer( lop );
66  }
67 
68  private:
69  // store the objects created by operator + in here
71  ObjPointerType * item_;
72 
73  };
74 
75  } // namespace Fem
76 
77 } // namespace Dune
78 
79 #endif // #ifndef DUNE_FEM_OBJPOINTER_HH
ObjPointer(ObjType *t)
new ObjPointer is only created with pointer for item
Definition: objpointer.hh:24
ObjType * item
remember object item and next pointer
Definition: objpointer.hh:17
ObjPointer< ObjType > ObjPointerType
Definition: objpointer.hh:15
ObjPointerType * next
Definition: objpointer.hh:18
virtual ~ObjPointer()
Definition: objpointer.hh:28
virtual ~ObjPointerStorage()
need virtual desctructor for deleting the real objects.
Definition: objpointer.hh:45
void saveObjPointer(DiscrOpType *discrOp)
Store new generated DiscreteOperator Pointer.
Definition: objpointer.hh:52
Definition: objpointer.hh:37
void saveObjPointer(DiscrOpType *discrOp, LocalOpType *lop)
Definition: objpointer.hh:62
ObjPointerStorage()
make new operator with item points to null
Definition: objpointer.hh:42
Definition: coordinate.hh:4
Definition: objpointer.hh:13
ObjPointer()
new ObjPointer is only created with pointer for item
Definition: objpointer.hh:21