PLCnext API Documentation  22.9.0.33
Public Member Functions | List of all members
Arp::Enumerator< T >::Composite Class Reference

Use this class to build a single enumerator by two given enumerator, e.g. to enumerate multiple container/collections or trees. More...

#include <Enumerator.hxx>

Inheritance diagram for Arp::Enumerator< T >::Composite:
Inheritance graph

Public Member Functions

 Composite (typename IEnumerator< T >::Ptr first, typename IEnumerator< T >::Ptr second)
 Constructs an Composite instance. More...
 
 Composite (const Composite &arg)=default
 Copy constructor. More...
 
Compositeoperator= (const Composite &arg)=default
 Assignment operator. More...
 
virtual ~Composite (void)=default
 Destructs this instance and frees all resources. More...
 
bool MoveNext (void) override
 Moves this enumerator to the next position. More...
 
GetCurrent (void) override
 Gets the element at the current position. More...
 

Additional Inherited Members

- Public Types inherited from Arp::IEnumerator< T >
typedef std::shared_ptr< IEnumeratorPtr
 The smart pointer tpye of this interface. More...
 
- Protected Member Functions inherited from Arp::IEnumerator< T >
 IEnumerator (void)=default
 Constructs an IEnumerator instance. More...
 
virtual ~IEnumerator (void)=default
 Destructs this instance and frees all resources. More...
 
 IEnumerator (const IEnumerator &arg)=default
 Copies an IEnumerator instance. More...
 
IEnumeratoroperator= (const IEnumerator &arg)=default
 Assigns an IEnumerator instance. More...
 

Detailed Description

template<class T>
class Arp::Enumerator< T >::Composite

Use this class to build a single enumerator by two given enumerator, e.g. to enumerate multiple container/collections or trees.

This class implements the composite design pattern for enumerators and makes it easy to traverse tree structures. Use Enumerator<T>::CreateComposite() to create an instance of this class.

Constructor & Destructor Documentation

◆ Composite() [1/2]

template<class T >
Arp::Enumerator< T >::Composite::Composite ( typename IEnumerator< T >::Ptr  first,
typename IEnumerator< T >::Ptr  second 
)
inline

Constructs an Composite instance.

Parameters
firstThe first enumerator to create the composite from.
secondThe second enumerator to create the composite from.

◆ Composite() [2/2]

template<class T >
Arp::Enumerator< T >::Composite::Composite ( const Composite arg)
default

Copy constructor.

Parameters
argThe argument to copy.

◆ ~Composite()

template<class T >
virtual Arp::Enumerator< T >::Composite::~Composite ( void  )
virtualdefault

Destructs this instance and frees all resources.

Member Function Documentation

◆ GetCurrent()

template<class T >
T Arp::Enumerator< T >::Composite::GetCurrent ( void  )
inlineoverridevirtual

Gets the element at the current position.

Returns
The element at the current position.

Depending an the template parameter type of this interface, a reference or even const reference might be returned.

Implements Arp::IEnumerator< T >.

◆ MoveNext()

template<class T >
bool Arp::Enumerator< T >::Composite::MoveNext ( void  )
inlineoverridevirtual

Moves this enumerator to the next position.

Returns
false if the end of the container/collections was reached and the enumerator was not moved, otherwise false.

See comments of interface declaration for more information about this operation.

IEnumerator

Implements Arp::IEnumerator< T >.

◆ operator=()

template<class T >
Composite& Arp::Enumerator< T >::Composite::operator= ( const Composite arg)
default

Assignment operator.

Parameters
argThe argument to copy.
Returns
This instance as reference.

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