Jpp  16.0.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JPointer.hh
Go to the documentation of this file.
1 #ifndef __JLANG__JPOINTER__
2 #define __JLANG__JPOINTER__
3 
5 
6 
7 /**
8  * \author mdejong
9  */
10 
11 namespace JLANG {}
12 namespace JPP { using namespace JLANG; }
13 
14 namespace JLANG {
15 
16  /**
17  * Template implementation of class that holds pointer to object(s).
18  *
19  * This class implements the JAbstractPointer interface.
20  */
21  template<class JClass_t>
22  class JPointer :
23  public JAbstractPointer<JClass_t>
24  {
25  public:
26 
29 
30  /**
31  * Default constructor.
32  */
34  __p(NULL)
35  {}
36 
37 
38  /**
39  * Constructor.
40  *
41  * \param p pointer to object
42  */
43  JPointer(JClass_t* p) :
44  __p(p)
45  {}
46 
47 
48  /**
49  * Constructor.
50  *
51  * \param pointer pointer to object
52  */
53  template<class T>
54  JPointer(JPointer<T> pointer) :
55  __p(pointer.get())
56  {}
57 
58 
59  /**
60  * Get pointer.
61  *
62  * \return pointer to object
63  */
64  virtual JClass_t* get() const override
65  {
66  return this->__p;
67  }
68 
69 
70  /**
71  * Set pointer.
72  *
73  * \param p pointer to object
74  */
75  virtual void set(JClass_t* p) override
76  {
77  this->__p = p;
78  }
79 
80 
81  /**
82  * Reset pointer.
83  */
84  virtual void reset() override
85  {
86  this->__p = NULL;
87  }
88 
89 
90  /**
91  * Set pointer.
92  *
93  * \param pointer pointer to object
94  */
95  template<class T>
96  void set(const JPointer<T>& pointer)
97  {
98  this->set(pointer.get());
99  }
100 
101 
102  /**
103  * Reset pointer.
104  *
105  * \param pointer pointer to object
106  */
107  template<class T>
108  void reset(const JPointer<T>& pointer)
109  {
110  this->reset(pointer.get());
111  }
112 
113 
114  /**
115  * Get rereference to internal pointer.
116  *
117  * \return reference to internal pointer
118  */
119  JClass_t* const& getReference() const
120  {
121  return __p;
122  }
123 
124 
125  /**
126  * Get rereference to internal pointer.
127  *
128  * \return reference to internal pointer
129  */
130  JClass_t* & getReference()
131  {
132  return __p;
133  }
134 
135  protected:
136  JClass_t* __p; //!< pointer to object
137  };
138 }
139 
140 #endif
JClass_t *& getReference()
Get rereference to internal pointer.
Definition: JPointer.hh:130
void reset(const JPointer< T > &pointer)
Reset pointer.
Definition: JPointer.hh:108
JPointer()
Default constructor.
Definition: JPointer.hh:33
JClass_t * __p
pointer to object
Definition: JPointer.hh:136
void set(const JPointer< T > &pointer)
Set pointer.
Definition: JPointer.hh:96
JClass_t *const & getReference() const
Get rereference to internal pointer.
Definition: JPointer.hh:119
JPointer(JClass_t *p)
Constructor.
Definition: JPointer.hh:43
Template implementation of class that holds pointer to object(s).
Definition: JPointer.hh:22
Template interface for pointer to object(s).
virtual void set(JClass_t *p) override
Set pointer.
Definition: JPointer.hh:75
virtual JClass_t * get() const override
Get pointer.
Definition: JPointer.hh:64
virtual void reset() override
Reset pointer.
Definition: JPointer.hh:84
JPointer(JPointer< T > pointer)
Constructor.
Definition: JPointer.hh:54