Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
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
11namespace JLANG {}
12namespace JPP { using namespace JLANG; }
13
14namespace 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
27 using JAbstractPointer<JClass_t>::set;
28 using JAbstractPointer<JClass_t>::reset;
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>
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
Template interface for pointer to object(s).
Template implementation of class that holds pointer to object(s).
Definition JPointer.hh:24
JPointer()
Default constructor.
Definition JPointer.hh:33
JPointer(JClass_t *p)
Constructor.
Definition JPointer.hh:43
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
void reset(const JPointer< T > &pointer)
Reset pointer.
Definition JPointer.hh:108
virtual void set(JClass_t *p) override
Set pointer.
Definition JPointer.hh:75
virtual void reset() override
Reset pointer.
Definition JPointer.hh:84
virtual JClass_t * get() const override
Get pointer.
Definition JPointer.hh:64
JClass_t *& getReference()
Get rereference to internal pointer.
Definition JPointer.hh:130
JClass_t * __p
pointer to object
Definition JPointer.hh:136
JPointer(JPointer< T > pointer)
Constructor.
Definition JPointer.hh:54
Auxiliary classes and methods for language specific functionality.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).