Jpp 21.0.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JPARSER::JParserElement Class Reference

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

#include <JParser.hh>

Inheritance diagram for JPARSER::JParserElement:

Public Types

typedef std::shared_ptr< JParserElementInterfaceshared_ptr_t
 

Public Member Functions

 JParserElement ()
 Default constructor.
 
 JParserElement (const JParserElement &value)
 Copy constructor.
 
JParserElementoperator= (JParserElement &value)
 Assignment operator.
 
template<class JType_t >
JParserTemplateElement< JType_t > & operator= (JType_t &value)
 Assignment operator.
 
template<class JType_t >
JParserTemplateElement< JType_t > & operator= (const JParserTemplateElement< JType_t > &value)
 Assignment operator.
 
template<class JType_t >
JCSV< JType_t > operator= (const JCSV< JType_t > &value)
 Assignment operator.
 
const JParserElementoperator= (const initialised &value)
 Set initialised status to true.
 
const JParserElementoperator= (const not_initialised &value)
 Set initialised status to false.
 
bool is_valid () const
 Check validity.
 
void print (std::ostream &out) const
 Print.
 

Friends

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

Detailed Description

Auxiliary class to handle pointer to JPARSER::JParserElementInterface.

Definition at line 1418 of file JParser.hh.

Member Typedef Documentation

◆ shared_ptr_t

Definition at line 1423 of file JParser.hh.

Constructor & Destructor Documentation

◆ JParserElement() [1/2]

JPARSER::JParserElement::JParserElement ( )
inline

Default constructor.

Definition at line 1429 of file JParser.hh.

1429 :
1430 shared_ptr_t()
1431 {}
std::shared_ptr< JParserElementInterface > shared_ptr_t
Definition JParser.hh:1423

◆ JParserElement() [2/2]

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

Copy constructor.

Parameters
valuereference to JParserElement

Definition at line 1439 of file JParser.hh.

1439 :
1440 shared_ptr_t(static_cast<const shared_ptr_t&>(value))
1441 {}

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 1450 of file JParser.hh.

1451 {
1452 shared_ptr_t::operator=(static_cast<shared_ptr_t&>(value));
1453
1454 return *this;
1455 }

◆ 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 1465 of file JParser.hh.

1466 {
1467 JParserTemplateElement<JType_t>* __p = new JParserTemplateElement<JType_t>(value);
1468
1469 reset(__p);
1470
1471 return *__p;
1472 }
void reset(T &value)
Reset value.

◆ 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 1482 of file JParser.hh.

1483 {
1484 JParserTemplateElement<JType_t>* __p = new JParserTemplateElement<JType_t>(value);
1485
1486 reset(__p);
1487
1488 return *__p;
1489 }

◆ 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 1499 of file JParser.hh.

1500 {
1501 JParserTemplateElement<JType_t>* __p = new JParserTemplateElement<JType_t>(value);
1502
1503 reset(__p);
1504
1505 return JCSV<JType_t>(*__p);
1506 }

◆ 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 1515 of file JParser.hh.

1516 {
1517 if (!is_valid())
1518 THROW(JParserException, "No parser object defined.");
1519 else
1520 (*this)->setInitialiationStatus(true);
1521
1522 return *this;
1523 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
bool is_valid() const
Check validity.
Definition JParser.hh:1545

◆ 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 1532 of file JParser.hh.

1533 {
1534 (*this)->setInitialiationStatus(false);
1535
1536 return *this;
1537 }

◆ is_valid()

bool JPARSER::JParserElement::is_valid ( ) const
inline

Check validity.

Returns
true if valid; else false

Definition at line 1545 of file JParser.hh.

1546 {
1547 return (bool) static_cast<const shared_ptr_t&>(*this);
1548 }

◆ print()

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

Print.

Parameters
outoutput stream

Definition at line 1588 of file JParser.hh.

1589 {
1590 if (is_valid()) {
1591 return get()->print(out);
1592 }
1593 }

Friends And Related Symbol Documentation

◆ operator>>

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

Stream input.

Parameters
ininput stream
valueparser element
Returns
input stream

Definition at line 1558 of file JParser.hh.

1559 {
1560 if (value.is_valid())
1561 return value->read(in);
1562 else
1563 return in;
1564 }

◆ operator<<

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

Stream output.

Parameters
outoutput stream
valueparser element
Returns
output stream

Definition at line 1574 of file JParser.hh.

1575 {
1576 if (value.is_valid())
1577 return value->write(out);
1578 else
1579 return out;
1580 }

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