Jpp
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
JPARSER::JParserElement Class Reference

Auxiliary class to handle pointer to JPARSER::JParserElementInterface. More...

#include <JParser.hh>

Inheritance diagram for JPARSER::JParserElement:
JLANG::JSharedPointer< JClass_t, JMemory_t > JLANG::JSharedCounter JLANG::JStorage< JClass_t, JMemory_t > JLANG::JPointer< JClass_t > JLANG::JAbstractPointer< JClass_t > JLANG::JEquals< JAbstractPointer< JClass_t > >

Public Types

typedef JSharedPointer< JParserElementInterfaceJSharedPointer_t
 
typedef JPointer< JClass_t > pointer_type
 
typedef JStorage< JClass_t, JMemory_t > storage_type
 
typedef JMemory_t< JClass_t > memory_type
 

Public Member Functions

 JParserElement ()
 Default constructor. More...
 
 JParserElement (const JParserElement &value)
 Copy constructor. More...
 
JParserElementoperator= (JParserElement &value)
 Assignment operator. More...
 
template<class JType_t >
JParserTemplateElement< JType_t > & operator= (JType_t &value)
 Assignment operator. More...
 
template<class JType_t >
JParserTemplateElement< JType_t > & operator= (const JParserTemplateElement< JType_t > &value)
 Assignment operator. More...
 
template<class JType_t >
JCSV< JType_t > operator= (const JCSV< JType_t > &value)
 Assignment operator. More...
 
const JParserElementoperator= (const initialised &value)
 Set initialised status to true. More...
 
const JParserElementoperator= (const not_initialised &value)
 Set initialised status to false. More...
 
void print (std::ostream &out) const
 Print. More...
 
const JSharedPointergetSharedPointer () const
 Get shared pointer. More...
 
JSharedPointergetSharedPointer ()
 Get shared pointer. More...
 
void setSharedPointer (const JSharedPointer &object)
 Set shared pointer. More...
 
virtual void reset ()
 Reset pointer. More...
 
virtual void reset ()
 Reset pointer. More...
 
template<class T >
void reset (const JPointer< T > &pointer)
 Reset pointer. More...
 
template<class T >
void reset (const JPointer< T > &pointer)
 Reset pointer. More...
 
void reset (JClass_t *p)
 Reset pointer. More...
 
template<class T >
void set (const JPointer< T > &pointer)
 Set pointer. More...
 
void initialise ()
 Initialise counter. More...
 
void attach (const JSharedCounter &object)
 Attach this counter to given shared counter object. More...
 
bool detach ()
 Detach. More...
 
void recreate ()
 Recreate object in memory. More...
 
void create ()
 Create object in memory. More...
 
void create (const unsigned int size)
 Create array of objects in memory. More...
 
virtual JClass_t * get () const
 Get pointer. More...
 
JClass_t *const & getReference () const
 Get rereference to internal pointer. More...
 
JClass_t *& getReference ()
 Get rereference to internal pointer. More...
 
virtual bool equals (const JAbstractPointer &object) const
 Equals. More...
 
bool is_valid () const
 Check validity of pointer. More...
 
JClass_t * operator-> () const
 Smart pointer operator. More...
 
 operator JClass_t * () const
 Type conversion operator. More...
 

Protected Member Functions

void set (const JSharedPointer &object)
 Set pointer. More...
 
virtual void set (JClass_t *p)
 Set pointer. More...
 
void release ()
 Release memory. More...
 

Protected Attributes

int * counter
 
JClass_t * __p
 pointer to object More...
 

Friends

std::istream & operator>> (std::istream &in, JParserElement &value)
 Stream input. More...
 
std::ostream & operator<< (std::ostream &out, const JParserElement &value)
 Stream output. More...
 

Detailed Description

Auxiliary class to handle pointer to JPARSER::JParserElementInterface.

Definition at line 1264 of file JParser.hh.

Member Typedef Documentation

◆ JSharedPointer_t

Definition at line 1269 of file JParser.hh.

◆ pointer_type

template<class JClass_t, template< class > class JMemory_t = JNew>
typedef JPointer<JClass_t> JLANG::JSharedPointer< JClass_t, JMemory_t >::pointer_type
inherited

Definition at line 34 of file JSharedPointer.hh.

◆ storage_type

template<class JClass_t, template< class > class JMemory_t = JNew>
typedef JStorage<JClass_t, JMemory_t> JLANG::JSharedPointer< JClass_t, JMemory_t >::storage_type
inherited

Definition at line 35 of file JSharedPointer.hh.

◆ memory_type

template<class JClass_t, template< class > class JMemory_t = JNew>
typedef JMemory_t<JClass_t> JLANG::JStorage< JClass_t, JMemory_t >::memory_type
inherited

Definition at line 33 of file JStorage.hh.

Constructor & Destructor Documentation

◆ JParserElement() [1/2]

JPARSER::JParserElement::JParserElement ( )
inline

Default constructor.

Definition at line 1275 of file JParser.hh.

1275  :
1277  {}

◆ JParserElement() [2/2]

JPARSER::JParserElement::JParserElement ( const JParserElement value)
inline

Copy constructor.

Parameters
valuereference to JParserElement

Definition at line 1285 of file JParser.hh.

1285  :
1286  JSharedPointer_t(static_cast<const JSharedPointer_t&>(value))
1287  {}

Member Function Documentation

◆ operator=() [1/6]

JParserElement& JPARSER::JParserElement::operator= ( JParserElement value)
inline

Assignment operator.

Parameters
valuereference to JParserElement
Returns
this JParserElement

Definition at line 1296 of file JParser.hh.

1297  {
1298  JSharedPointer_t::operator=(static_cast<JSharedPointer_t&>(value));
1299 
1300  return *this;
1301  }

◆ operator=() [2/6]

template<class JType_t >
JParserTemplateElement<JType_t>& JPARSER::JParserElement::operator= ( JType_t &  value)
inline

Assignment operator.

Parameters
valuereference to unnamed data object
Returns
corresponding new JParserTemplateElement object

Definition at line 1311 of file JParser.hh.

1312  {
1313  JParserTemplateElement<JType_t>* __p = new JParserTemplateElement<JType_t>(value);
1314 
1315  reset(__p);
1316 
1317  return *__p;
1318  }

◆ operator=() [3/6]

template<class JType_t >
JParserTemplateElement<JType_t>& JPARSER::JParserElement::operator= ( const JParserTemplateElement< JType_t > &  value)
inline

Assignment operator.

Parameters
valuereference to JParserTemplateElement object
Returns
corresponding new JParserTemplateElement object

Definition at line 1328 of file JParser.hh.

1329  {
1330  JParserTemplateElement<JType_t>* __p = new JParserTemplateElement<JType_t>(value);
1331 
1332  reset(__p);
1333 
1334  return *__p;
1335  }

◆ operator=() [4/6]

template<class JType_t >
JCSV<JType_t> JPARSER::JParserElement::operator= ( const JCSV< JType_t > &  value)
inline

Assignment operator.

Parameters
valuereference to a corresponding JCSV object
Returns
corresponding new comma separated values parser

Definition at line 1345 of file JParser.hh.

1346  {
1347  JParserTemplateElement<JType_t>* __p = new JParserTemplateElement<JType_t>(value);
1348 
1349  reset(__p);
1350 
1351  return JCSV<JType_t>(*__p);
1352  }

◆ operator=() [5/6]

const JParserElement& JPARSER::JParserElement::operator= ( const initialised value)
inline

Set initialised status to true.

Parameters
valueinitialised object
Returns
this object

Definition at line 1361 of file JParser.hh.

1362  {
1363  if (!is_valid())
1364  THROW(JParserException, "No parser object defined.");
1365  else
1366  (*this)->setInitialiationStatus(true);
1367 
1368  return *this;
1369  }

◆ operator=() [6/6]

const JParserElement& JPARSER::JParserElement::operator= ( const not_initialised value)
inline

Set initialised status to false.

Parameters
valueinitialised object
Returns
this object

Definition at line 1378 of file JParser.hh.

1379  {
1380  (*this)->setInitialiationStatus(false);
1381 
1382  return *this;
1383  }

◆ print()

void JPARSER::JParserElement::print ( std::ostream &  out) const
inline

Print.

Parameters
outoutput stream
Returns
output stream

Definition at line 1424 of file JParser.hh.

1425  {
1426  if (is_valid()) {
1427  return get()->print(out);
1428  }
1429  }

◆ getSharedPointer() [1/2]

template<class JClass_t, template< class > class JMemory_t = JNew>
const JSharedPointer& JLANG::JSharedPointer< JClass_t, JMemory_t >::getSharedPointer ( ) const
inlineinherited

Get shared pointer.

Returns
this shared pointer

Definition at line 95 of file JSharedPointer.hh.

96  {
97  return static_cast<const JSharedPointer&>(*this);
98  }

◆ getSharedPointer() [2/2]

template<class JClass_t, template< class > class JMemory_t = JNew>
JSharedPointer& JLANG::JSharedPointer< JClass_t, JMemory_t >::getSharedPointer ( )
inlineinherited

Get shared pointer.

Returns
this shared pointer

Definition at line 106 of file JSharedPointer.hh.

107  {
108  return static_cast<JSharedPointer&>(*this);
109  }

◆ setSharedPointer()

template<class JClass_t, template< class > class JMemory_t = JNew>
void JLANG::JSharedPointer< JClass_t, JMemory_t >::setSharedPointer ( const JSharedPointer< JClass_t, JMemory_t > &  object)
inlineinherited

Set shared pointer.

Parameters
objectshared pointer

Definition at line 117 of file JSharedPointer.hh.

118  {
119  if (this->get() != object.get()) {
120 
121  this->reset();
122 
123  if (object.is_valid()) {
124  this->set(object);
125  }
126  }
127  }

◆ reset() [1/5]

template<class JClass_t, template< class > class JMemory_t = JNew>
virtual void JLANG::JSharedPointer< JClass_t, JMemory_t >::reset ( )
inlinevirtualinherited

Reset pointer.

The reference counter is decremented by one and the object pointed to previously is deleted when its reference counter is zero.

Reimplemented from JLANG::JStorage< JClass_t, JMemory_t >.

Definition at line 171 of file JSharedPointer.hh.

172  {
173  if (this->detach()) {
175  }
176 
178  }

◆ reset() [2/5]

template<class JClass_t, template< class > class JMemory_t = JNew>
virtual void JLANG::JPointer< JClass_t >::reset
inlineinherited

Reset pointer.

Definition at line 84 of file JPointer.hh.

85  {
86  this->__p = NULL;
87  }

◆ reset() [3/5]

template<class JClass_t, template< class > class JMemory_t = JNew>
template<class T >
void JLANG::JPointer< JClass_t >::reset ( class T  )
inlineinherited

Reset pointer.

Parameters
pointerpointer to object

Definition at line 108 of file JPointer.hh.

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

◆ reset() [4/5]

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

Reset pointer.

Parameters
pointerpointer to object

Definition at line 108 of file JPointer.hh.

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

◆ reset() [5/5]

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  }

◆ set() [1/3]

template<class JClass_t, template< class > class JMemory_t = JNew>
void JLANG::JSharedPointer< JClass_t, JMemory_t >::set ( const JSharedPointer< JClass_t, JMemory_t > &  object)
inlineprotectedinherited

Set pointer.

The reference counter of the shared object pointed to is incremented by one.

Parameters
objectshared pointer

Definition at line 188 of file JSharedPointer.hh.

189  {
190  pointer_type::set(object.get());
191 
192  this->attach(object);
193  }

◆ set() [2/3]

template<class JClass_t, template< class > class JMemory_t = JNew>
virtual void JLANG::JSharedPointer< JClass_t, JMemory_t >::set ( JClass_t *  p)
inlineprotectedvirtualinherited

Set pointer.

The reference counter of the shared object pointed to is initialised to one.

Parameters
ppointer to derived class object

Reimplemented from JLANG::JPointer< JClass_t >.

Definition at line 202 of file JSharedPointer.hh.

203  {
205 
206  this->initialise();
207  }

◆ set() [3/3]

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  }

◆ initialise()

void JLANG::JSharedCounter::initialise ( )
inlineinherited

Initialise counter.

Definition at line 33 of file JSharedCounter.hh.

34  {
35  detach();
36 
37  counter = new int(1);
38  }

◆ attach()

void JLANG::JSharedCounter::attach ( const JSharedCounter object)
inlineinherited

Attach this counter to given shared counter object.

Parameters
objectshared counter

Definition at line 46 of file JSharedCounter.hh.

47  {
48  detach();
49 
50  counter = object.counter;
51 
52  if (counter != NULL) {
53  ++(*counter);
54  }
55  }

◆ detach()

bool JLANG::JSharedCounter::detach ( )
inlineinherited

Detach.

Returns
true if counter at zero; else false

Definition at line 63 of file JSharedCounter.hh.

64  {
65  if (counter != NULL) {
66 
67  if (--(*counter) == 0) {
68 
69  delete counter;
70 
71  counter = NULL;
72 
73  return true;
74  }
75 
76  counter = NULL;
77  }
78 
79  return false;
80  }

◆ recreate()

template<class JClass_t, template< class > class JMemory_t = JNew>
void JLANG::JStorage< JClass_t, JMemory_t >::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  }

◆ create() [1/2]

template<class JClass_t, template< class > class JMemory_t = JNew>
void JLANG::JStorage< JClass_t, JMemory_t >::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  {
71  this->reset(memory_type::create());
72  }

◆ create() [2/2]

template<class JClass_t, template< class > class JMemory_t = JNew>
void JLANG::JStorage< JClass_t, JMemory_t >::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()

template<class JClass_t, template< class > class JMemory_t = JNew>
void JLANG::JStorage< JClass_t, JMemory_t >::release ( )
inlineprotectedinherited

Release memory.

Definition at line 91 of file JStorage.hh.

92  {
93  memory_type::release(this->get());
94  }

◆ get()

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

◆ 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  }

◆ 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  }

Friends And Related Function Documentation

◆ operator>>

std::istream& operator>> ( std::istream &  in,
JParserElement value 
)
friend

Stream input.

Parameters
ininput stream
valueparser element
Returns
input stream

Definition at line 1393 of file JParser.hh.

1394  {
1395  if (value.is_valid())
1396  return value->read(in);
1397  else
1398  return in;
1399  }

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const JParserElement value 
)
friend

Stream output.

Parameters
outoutput stream
valueparser element
Returns
output stream

Definition at line 1409 of file JParser.hh.

1410  {
1411  if (value.is_valid())
1412  return value->write(out);
1413  else
1414  return out;
1415  }

Member Data Documentation

◆ counter

int* JLANG::JSharedCounter::counter
protectedinherited

Definition at line 83 of file JSharedCounter.hh.

◆ __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:
JLANG::JSharedCounter::detach
bool detach()
Detach.
Definition: JSharedCounter.hh:63
JLANG::JPointer::set
virtual void set(JClass_t *p)
Set pointer.
Definition: JPointer.hh:75
JLANG::JPointer::get
virtual JClass_t * get() const
Get pointer.
Definition: JPointer.hh:64
JPARSER::JParserElement::JSharedPointer_t
JSharedPointer< JParserElementInterface > JSharedPointer_t
Definition: JParser.hh:1269
JLANG::JPointer::__p
JClass_t * __p
pointer to object
Definition: JPointer.hh:136
JLANG::JSharedPointer::set
void set(const JSharedPointer &object)
Set pointer.
Definition: JSharedPointer.hh:188
JLANG::JSharedCounter::counter
int * counter
Definition: JSharedCounter.hh:83
JLANG::JNullPointerException
Exception for null pointer operation.
Definition: JException.hh:216
JLANG::JAbstractPointer::reset
virtual void reset()=0
Reset pointer.
JLANG::JSharedCounter::attach
void attach(const JSharedCounter &object)
Attach this counter to given shared counter object.
Definition: JSharedCounter.hh:46
JLANG::JPointer::reset
virtual void reset()
Reset pointer.
Definition: JPointer.hh:84
JLANG::JParserException
Exception when parsing a value.
Definition: JException.hh:522
THROW
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
JLANG::JSharedCounter::initialise
void initialise()
Initialise counter.
Definition: JSharedCounter.hh:33
JLANG::JAbstractPointer::get
virtual JClass_t * get() const =0
Get pointer.
JLANG::JSharedPointer::reset
virtual void reset()
Reset pointer.
Definition: JSharedPointer.hh:171
JLANG::JSharedPointer::operator=
JSharedPointer & operator=(const JSharedPointer &object)
Assignment operator.
Definition: JSharedPointer.hh:139
JLANG::JStorage::reset
virtual void reset()
Reset pointer.
Definition: JStorage.hh:42
JLANG::JAbstractPointer::is_valid
bool is_valid() const
Check validity of pointer.
Definition: JAbstractPointer.hh:83
JLANG::JAbstractPointer::set
virtual void set(JClass_t *p)=0
Set pointer.