|
PLCnext API Documentation 25.6.0.37
|
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... | |
Public Member Functions inherited from Arp::Base::Core::IEnumerator< T > | |
| 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 | |
Public Types inherited from Arp::Base::Core::IEnumerator< T > | |
| 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. |