PLCnext API Documentation 25.0.2.69
|
Use this class to build a single enumerator by two given enumerator, e.g. to enumerate multiple container/collections or trees. More...
#include <Enumerator.Composite.hxx>
Public Member Functions | |
Composite (typename IEnumerator< T >::Ptr first, typename IEnumerator< T >::Ptr second) | |
Constructs an Enumerator<T>::Composite instance. More... | |
Composite (const Composite &arg)=delete | |
Composite (Composite &&arg) noexcept | |
Move constructor. More... | |
Composite & | operator= (const Composite &arg)=delete |
Composite & | operator= (Composite &&arg) noexcept |
Move assignment operator. More... | |
~Composite (void) override | |
Destructs this instance and frees all resources. | |
bool | MoveNext (void) override |
Moves this enumerator to the next position. More... | |
T | GetCurrent (void) override |
Gets the element at the current position. More... | |
![]() | |
IEnumerator (void)=default | |
Constructs an IEnumerator instance. | |
IEnumerator (const IEnumerator &arg)=default | |
Deleted copy constructor. | |
IEnumerator (IEnumerator &&arg) noexcept=default | |
Move constructor. | |
IEnumerator & | operator= (const IEnumerator &arg)=default |
Deleted copy-assignment IEnumerator. | |
IEnumerator & | operator= (IEnumerator &&arg) noexcept=default |
Move-assignment operator. | |
virtual | ~IEnumerator (void)=default |
Destructs this instance and frees all resources. | |
virtual bool | MoveNext (void)=0 |
Moves this enumerator to the next position. More... | |
virtual T | GetCurrent (void)=0 |
Gets the element at the current position. More... | |
Additional Inherited Members | |
![]() | |
using | Ptr = std::shared_ptr< IEnumerator > |
The smart pointer type of this interface. | |
using | ValueType = T |
Type of the enumerated values | |
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.
|
inline |
Constructs an Enumerator<T>::Composite instance.
first | The first enumerator to create the composite from. |
second | The second enumerator to create the composite from. |
|
inlinedefaultnoexcept |
Move constructor.
arg | The argument to move. |
|
inlineoverridevirtual |
Gets the element at the current position.
Depending on the template parameter type of this interface, a reference or even const reference might be returned.
InvalidOperationException | When GetCurrent() is called before MoveNext() or after MoveNext() has returned false once. |
Implements Arp::Base::Core::IEnumerator< T >.
|
inlineoverridevirtual |
Moves this enumerator to the next position.
false
if the end of the container/collections/enumeration has reached, otherwise true
.Implements Arp::Base::Core::IEnumerator< T >.
|
inlinedefaultnoexcept |
Move assignment operator.
arg | The argument to move. |