Static Value-Flow Analysis
Public Member Functions | Private Attributes | List of all members
SVF::CondPointsToSet< Cond >::CondPtsSetIterator Class Reference

Conditional Points-to Set Iterator. More...

Public Member Functions

 CondPtsSetIterator (CondPointsToSet< Cond > &n, bool ae=false)
 
 ~CondPtsSetIterator ()
 
bool operator!= (int val)
 
bool operator== (const CondPtsSetIterator &RHS) const
 Operator overloading. More...
 
bool operator!= (const CondPtsSetIterator &RHS) const
 
void operator++ (void)
 
SingleCondVar operator* (void)
 
Cond cond (void)
 

Private Attributes

CondPointsToSet< Cond >::CondPtsIter _curIter
 
CondPointsToSet< Cond >::CondPtsIter _endIter
 
PointsTo::iterator _ptIter
 
PointsTo::iterator _ptEndIter
 
bool atEnd
 

Detailed Description

template<class Cond>
class SVF::CondPointsToSet< Cond >::CondPtsSetIterator

Conditional Points-to Set Iterator.

Definition at line 749 of file ConditionalPT.h.

Constructor & Destructor Documentation

◆ CondPtsSetIterator()

template<class Cond >
SVF::CondPointsToSet< Cond >::CondPtsSetIterator::CondPtsSetIterator ( CondPointsToSet< Cond > &  n,
bool  ae = false 
)
inline

Definition at line 752 of file ConditionalPT.h.

753  : _curIter(n.cptsBegin()), _endIter(n.cptsEnd()),
754  _ptIter(_curIter->second.begin()), _ptEndIter(_curIter->second.end()), atEnd(ae) {}
cJSON * n
Definition: cJSON.cpp:2558
CondPointsToSet< Cond >::CondPtsIter _curIter
CondPointsToSet< Cond >::CondPtsIter _endIter

◆ ~CondPtsSetIterator()

template<class Cond >
SVF::CondPointsToSet< Cond >::CondPtsSetIterator::~CondPtsSetIterator ( )
inline

Definition at line 755 of file ConditionalPT.h.

755 {}

Member Function Documentation

◆ cond()

template<class Cond >
Cond SVF::CondPointsToSet< Cond >::CondPtsSetIterator::cond ( void  )
inline

Definition at line 801 of file ConditionalPT.h.

802  {
803  return _curIter->first;
804  }

◆ operator!=() [1/2]

template<class Cond >
bool SVF::CondPointsToSet< Cond >::CondPtsSetIterator::operator!= ( const CondPtsSetIterator RHS) const
inline

Definition at line 770 of file ConditionalPT.h.

771  {
772  return !(*this == RHS);
773  }

◆ operator!=() [2/2]

template<class Cond >
bool SVF::CondPointsToSet< Cond >::CondPtsSetIterator::operator!= ( int  val)
inline

Definition at line 756 of file ConditionalPT.h.

757  {
758  return _curIter != _endIter;
759  }

◆ operator*()

template<class Cond >
SingleCondVar SVF::CondPointsToSet< Cond >::CondPtsSetIterator::operator* ( void  )
inline

Definition at line 794 of file ConditionalPT.h.

795  {
796  SingleCondVar temp_var(cond(), *_ptIter);
797  return temp_var;
798  }
CondVar< Cond > SingleCondVar

◆ operator++()

template<class Cond >
void SVF::CondPointsToSet< Cond >::CondPtsSetIterator::operator++ ( void  )
inline

Definition at line 775 of file ConditionalPT.h.

776  {
777  if(atEnd == true)
778  return;
779 
780  if(_ptIter==_ptEndIter)
781  {
782  if(_curIter == _endIter)
783  {
784  atEnd = true;
785  return;
786  }
787  _curIter++;
788  _ptIter = _curIter->second.begin();
789  _ptIter = _curIter->second.end();
790  }
791  else
792  _ptIter++;
793  }

◆ operator==()

template<class Cond >
bool SVF::CondPointsToSet< Cond >::CondPtsSetIterator::operator== ( const CondPtsSetIterator RHS) const
inline

Operator overloading.

Definition at line 762 of file ConditionalPT.h.

763  {
764  // If they are both at the end, ignore the rest of the fields.
765  if (atEnd && RHS.atEnd)
766  return true;
767  // Otherwise they are the same if they have the same condVar
768  return atEnd == RHS.atEnd && RHS._curIter == _curIter && RHS._ptIter == _ptIter;
769  }

Member Data Documentation

◆ _curIter

template<class Cond >
CondPointsToSet<Cond>::CondPtsIter SVF::CondPointsToSet< Cond >::CondPtsSetIterator::_curIter
private

Definition at line 807 of file ConditionalPT.h.

◆ _endIter

template<class Cond >
CondPointsToSet<Cond>::CondPtsIter SVF::CondPointsToSet< Cond >::CondPtsSetIterator::_endIter
private

Definition at line 808 of file ConditionalPT.h.

◆ _ptEndIter

template<class Cond >
PointsTo::iterator SVF::CondPointsToSet< Cond >::CondPtsSetIterator::_ptEndIter
private

Definition at line 810 of file ConditionalPT.h.

◆ _ptIter

template<class Cond >
PointsTo::iterator SVF::CondPointsToSet< Cond >::CondPtsSetIterator::_ptIter
private

Definition at line 809 of file ConditionalPT.h.

◆ atEnd

template<class Cond >
bool SVF::CondPointsToSet< Cond >::CondPtsSetIterator::atEnd
private

Definition at line 811 of file ConditionalPT.h.


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