Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JLANG::JSinglePointer< JClass_t, JMemory_t > Class Template Reference

The template JSinglePointer class can be used to hold a pointer to an object. More...

#include <JSinglePointer.hh>

Inheritance diagram for JLANG::JSinglePointer< JClass_t, JMemory_t >:
JLANG::JStorage< JClass_t, JNew > JLANG::JPointer< JClass_t > JLANG::JNew< JClass_t > JLANG::JAbstractPointer< JClass_t > JLANG::JEquals< JAbstractPointer< JClass_t > >

Public Types

typedef JPointer< JClass_t > pointer_type
 
typedef JNew< JClass_t > memory_type
 

Public Member Functions

 JSinglePointer ()
 Default constructor.
 
 JSinglePointer (const JSinglePointer &object)
 Copy constructor.
 
 JSinglePointer (JClass_t *p)
 Constructor.
 
 ~JSinglePointer ()
 Destructor.
 
JSinglePointeroperator= (const JSinglePointer &object)
 Assignment operator.
 
template<class JDerived_t >
JSinglePointeroperator= (JDerived_t *p)
 Assignment operator.
 
virtual void reset () override
 Reset pointer.
 
void reset (const JPointer< T > &pointer)
 Reset pointer.
 
void reset (JClass_t *p)
 Reset pointer.
 
void recreate ()
 Recreate object in memory.
 
void create ()
 Create object in memory.
 
void create (const unsigned int size)
 Create array of objects in memory.
 
virtual JClass_t * get () const override
 Get pointer.
 
virtual void set (JClass_t *p) override
 Set pointer.
 
template<class T >
void set (const JPointer< T > &pointer)
 Set pointer.
 
JClass_t *const & getReference () const
 Get rereference to internal pointer.
 
JClass_t *& getReference ()
 Get rereference to internal pointer.
 
virtual bool equals (const JAbstractPointer &object) const
 Equals.
 
bool is_valid () const
 Check validity of pointer.
 
JClass_t * operator-> () const
 Smart pointer operator.
 
 operator JClass_t * () const
 Type conversion operator.
 

Static Public Member Functions

static void release (JClass_t *p)
 Release memory.
 

Protected Member Functions

void release ()
 Release memory.
 

Protected Attributes

JClass_t * __p
 pointer to object
 

Detailed Description

template<class JClass_t, template< class > class JMemory_t = JNew>
class JLANG::JSinglePointer< JClass_t, JMemory_t >

The template JSinglePointer class can be used to hold a pointer to an object.

The object pointed to is deleted at destruction. It is possible to create a container with single pointers. The first template argument refers to the data type pointed to and the second to the memory management policy.

Definition at line 24 of file JSinglePointer.hh.

Member Typedef Documentation

◆ pointer_type

JPointer<JClass_t> JLANG::JStorage< JClass_t, JNew >::pointer_type
inherited

Definition at line 32 of file JStorage.hh.

◆ memory_type

JNew<JClass_t> JLANG::JStorage< JClass_t, JNew >::memory_type
inherited

Definition at line 33 of file JStorage.hh.

Constructor & Destructor Documentation

◆ JSinglePointer() [1/3]

template<class JClass_t , template< class > class JMemory_t = JNew>
JLANG::JSinglePointer< JClass_t, JMemory_t >::JSinglePointer ( )
inline

Default constructor.

Definition at line 32 of file JSinglePointer.hh.

33 {}

◆ JSinglePointer() [2/3]

template<class JClass_t , template< class > class JMemory_t = JNew>
JLANG::JSinglePointer< JClass_t, JMemory_t >::JSinglePointer ( const JSinglePointer< JClass_t, JMemory_t > & object)
inline

Copy constructor.

The ownership of the object pointed to is transferred to this single pointer.

Parameters
objectsingle pointer

Definition at line 42 of file JSinglePointer.hh.

43 {
44 this->set(object.get());
45
46 const_cast<JSinglePointer&>(object).set(NULL);
47 }
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
JSinglePointer()
Default constructor.

◆ JSinglePointer() [3/3]

template<class JClass_t , template< class > class JMemory_t = JNew>
JLANG::JSinglePointer< JClass_t, JMemory_t >::JSinglePointer ( JClass_t * p)
inline

Constructor.

Parameters
ppointer to object

Definition at line 55 of file JSinglePointer.hh.

56 {
57 this->set(p);
58 }

◆ ~JSinglePointer()

template<class JClass_t , template< class > class JMemory_t = JNew>
JLANG::JSinglePointer< JClass_t, JMemory_t >::~JSinglePointer ( )
inline

Destructor.

Definition at line 64 of file JSinglePointer.hh.

65 {
66 this->reset();
67 }
virtual void reset() override
Definition JStorage.hh:42

Member Function Documentation

◆ operator=() [1/2]

template<class JClass_t , template< class > class JMemory_t = JNew>
JSinglePointer & JLANG::JSinglePointer< JClass_t, JMemory_t >::operator= ( const JSinglePointer< JClass_t, JMemory_t > & object)
inline

Assignment operator.

The object pointed to previously is deleted. The ownership of the object pointed to is transferred to this single pointer.

Parameters
objectsingle pointer
Returns
this single pointer

Definition at line 78 of file JSinglePointer.hh.

79 {
80 if (this->get() != object.get()) {
81
82 this->reset();
83
84 if (object.is_valid()) {
85
86 this->set(object.get());
87
88 const_cast<JSinglePointer&>(object).set(NULL);
89 }
90 }
91
92 return *this;
93 }
bool is_valid() const
Check validity of pointer.

◆ operator=() [2/2]

template<class JClass_t , template< class > class JMemory_t = JNew>
template<class JDerived_t >
JSinglePointer & JLANG::JSinglePointer< JClass_t, JMemory_t >::operator= ( JDerived_t * p)
inline

Assignment operator.

The object pointed to previously is deleted.

Parameters
ppointer to derived class object
Returns
this single pointer

Definition at line 104 of file JSinglePointer.hh.

105 {
106 this->reset(p);
107
108 return *this;
109 }

◆ reset() [1/3]

virtual void JLANG::JStorage< JClass_t, JNew >::reset ( )
inlineoverridevirtualinherited

Reset pointer.

The allocated memory is released.

Reimplemented from JLANG::JPointer< JClass_t >.

Reimplemented in JLANG::JSharedPointer< JClass_t, JMemory_t >.

Definition at line 42 of file JStorage.hh.

43 {
44 if (this->is_valid()) {
45 this->release();
46 }
47
49 }
virtual void reset() override
Reset pointer.
Definition JPointer.hh:84

◆ reset() [2/3]

void JLANG::JPointer< JClass_t >::reset ( const JPointer< T > & pointer)
inlineinherited

Reset pointer.

Parameters
pointerpointer to object

Definition at line 35 of file JPointer.hh.

109 {
110 this->reset(pointer.get());
111 }

◆ reset() [3/3]

template<class JClass_t >
void JLANG::JAbstractPointer< JClass_t >::reset ( JClass_t * p)
inlineinherited

Reset pointer.

Parameters
ppointer to object

Definition at line 94 of file JAbstractPointer.hh.

95 {
96 if (this->get() != p) {
97
98 this->reset();
99
100 if (p != NULL) {
101 this->set(p);
102 }
103 }
104 }
virtual void set(JClass_t *p)=0
Set pointer.
virtual JClass_t * get() const =0
Get pointer.
virtual void reset()=0
Reset pointer.

◆ recreate()

void JLANG::JStorage< JClass_t, JNew >::recreate ( )
inlineinherited

Recreate object in memory.

A new object is created if no memory is allocated yet, else the previously created object is maintained.

Definition at line 57 of file JStorage.hh.

58 {
59 if (!this->is_valid()) {
60 this->set(memory_type::create());
61 }
62 }
static JClass_t * create()
Create object in memory.
Definition JMemory.hh:30

◆ create() [1/2]

void JLANG::JStorage< JClass_t, JNew >::create ( )
inlineinherited

Create object in memory.

The memory allocated by a previously created object will be released.

Definition at line 69 of file JStorage.hh.

70 {
72 }

◆ create() [2/2]

void JLANG::JStorage< JClass_t, JNew >::create ( const unsigned int size)
inlineinherited

Create array of objects in memory.

The memory allocated by previously created objects will be released.

Parameters
sizenumber of elements

Definition at line 81 of file JStorage.hh.

82 {
83 this->reset(memory_type::create(size));
84 }

◆ release() [1/2]

void JLANG::JStorage< JClass_t, JNew >::release ( )
inlineprotectedinherited

Release memory.

Definition at line 91 of file JStorage.hh.

92 {
93 memory_type::release(this->get());
94 }
static void release(JClass_t *p)
Release memory.
Definition JMemory.hh:41

◆ release() [2/2]

template<class JClass_t >
static void JLANG::JNew< JClass_t >::release ( JClass_t * p)
inlinestaticinherited

Release memory.

Parameters
ppointer to data

Definition at line 41 of file JMemory.hh.

42 {
43 delete p;
44 }

◆ get()

template<class JClass_t >
virtual JClass_t * JLANG::JPointer< JClass_t >::get ( ) const
inlineoverridevirtualinherited

◆ set() [1/2]

template<class JClass_t >
virtual void JLANG::JPointer< JClass_t >::set ( JClass_t * p)
inlineoverridevirtualinherited

Set pointer.

Parameters
ppointer to object

Implements JLANG::JAbstractPointer< JClass_t >.

Reimplemented in JLANG::JSharedPointer< JClass_t, JMemory_t >, JLANG::JSharedPointer< JAbstractAutoPointer< JBase_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< Evt > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JDAQSummaryslice > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JHead_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JTail_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JTypeList< JDAQEvent, JNullType > > >, JLANG::JSharedPointer< JAccessibleObjectIterator< KM3NETDAQ::JDAQEvent > >, JLANG::JSharedPointer< JAccessibleObjectIterator< T > >, JLANG::JSharedPointer< JAccessibleObjectOutput< T > >, JLANG::JSharedPointer< JBase_t >, JLANG::JSharedPointer< JFIT::JMEstimator >, JLANG::JSharedPointer< JLOGGER::JLogger >, JLANG::JSharedPointer< JNET::JControlHost >, JLANG::JSharedPointer< JObjectIterator< T > >, JLANG::JSharedPointer< JObjectOutput< JHead_t > >, JLANG::JSharedPointer< JObjectOutput< JTail_t > >, JLANG::JSharedPointer< JObjectOutput< T > >, JLANG::JSharedPointer< JParserElementInterface >, JLANG::JSharedPointer< JPropertiesElementInterface >, JLANG::JSharedPointer< JRadiation >, JLANG::JSharedPointer< JRewindableObjectIterator< const event_type > >, JLANG::JSharedPointer< JRewindableObjectIterator< JHead_t > >, JLANG::JSharedPointer< JRewindableObjectIterator< JTail_t > >, JLANG::JSharedPointer< JRewindableObjectIterator< T > >, JLANG::JSharedPointer< JTOOLS::JMultiMapTransformer >, JLANG::JSharedPointer< JTRIGGER::JDAQHitSelector >, JLANG::JSharedPointer< JTRIGGER::JMatch >, and JLANG::JSharedPointer< match_type >.

Definition at line 75 of file JPointer.hh.

76 {
77 this->__p = p;
78 }

◆ set() [2/2]

template<class JClass_t >
template<class T >
void JLANG::JPointer< JClass_t >::set ( const JPointer< T > & pointer)
inlineinherited

Set pointer.

Parameters
pointerpointer to object

Definition at line 96 of file JPointer.hh.

97 {
98 this->set(pointer.get());
99 }

◆ getReference() [1/2]

template<class JClass_t >
JClass_t *const & JLANG::JPointer< JClass_t >::getReference ( ) const
inlineinherited

Get rereference to internal pointer.

Returns
reference to internal pointer

Definition at line 119 of file JPointer.hh.

120 {
121 return __p;
122 }

◆ getReference() [2/2]

template<class JClass_t >
JClass_t *& JLANG::JPointer< JClass_t >::getReference ( )
inlineinherited

Get rereference to internal pointer.

Returns
reference to internal pointer

Definition at line 130 of file JPointer.hh.

131 {
132 return __p;
133 }

◆ equals()

template<class JClass_t >
virtual bool JLANG::JAbstractPointer< JClass_t >::equals ( const JAbstractPointer< JClass_t > & object) const
inlinevirtualinherited

Equals.

The equality is evaluated by comparison of the internal pointers.

Parameters
objectabstract pointer
Returns
true if equals; else false

Definition at line 50 of file JAbstractPointer.hh.

51 {
52 return this->get() == object.get();
53 }

◆ is_valid()

template<class JClass_t >
bool JLANG::JAbstractPointer< JClass_t >::is_valid ( ) const
inlineinherited

Check validity of pointer.

Returns
true if pointer not null; else false

Definition at line 83 of file JAbstractPointer.hh.

84 {
85 return this->get() != NULL;
86 }

◆ operator->()

template<class JClass_t >
JClass_t * JLANG::JAbstractPointer< JClass_t >::operator-> ( ) const
inlineinherited

Smart pointer operator.

Returns
pointer to object

Definition at line 112 of file JAbstractPointer.hh.

113 {
114 if (!is_valid())
115 THROW(JNullPointerException, "JAbstractPointer::operator->()");
116 else
117 return this->get();
118 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.

◆ operator JClass_t *()

template<class JClass_t >
JLANG::JAbstractPointer< JClass_t >::operator JClass_t * ( ) const
inlineinherited

Type conversion operator.

Returns
pointer to object

Definition at line 126 of file JAbstractPointer.hh.

127 {
128 return this->get();
129 }

Member Data Documentation

◆ __p

template<class JClass_t >
JClass_t* JLANG::JPointer< JClass_t >::__p
protectedinherited

pointer to object

Definition at line 136 of file JPointer.hh.


The documentation for this class was generated from the following file: