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