8#include "Arp/Base/Core/Exception.hpp" 
    9#include "Arp/Base/Core/IEnumerator.hxx" 
   11namespace Arp { 
namespace Base { 
namespace Core
 
   30    template<
class Predicate>
 
   32    template<
class Iterator, 
class IteratorAdapter>
 
   34    template<
typename SourceEnumerator, 
typename TransformOperation>
 
   36    template<
class Iterator>
 
   51    template<
class TIterator>
 
   54    template<
class TContainer>
 
   57    template<
class TContainer>
 
   60    template<
class TContainer>
 
   63    template<
class TContainer>
 
   66    template<
class TContainer>
 
   69    template<
class TContainer>
 
   72    template<
class Predicate>
 
   75    template<
class SourceEnumerator, 
class TransformOperation>
 
   76    static typename IEnumerator<T>::Ptr CreateTransform(std::shared_ptr<SourceEnumerator> source, TransformOperation transformOp);
 
   83    using TCurrent = 
typename std::remove_const<typename std::remove_reference<T>::type>::type;
 
  115    return this->current;
 
Use this class to build a single enumerator by two given enumerator, e.g. to enumerate multiple conta...
Definition: Enumerator.Composite.hxx:20
 
Implements an empty enumerator, that is, every call to Enumerator<T>::Empty::MoveNext() will return f...
Definition: Enumerator.Empty.hxx:22
 
This class implements a filtering enumerator. It enumerates all nodes of the source enumerator matchi...
Definition: Enumerator.Filter.hxx:19
 
This class implements several adapter of STL iterators to extract specific properties.
Definition: Enumerator.IteratorAdapters.hxx:18
 
Use this class to build a single enumerator by multiple other enumerators using a stack
Definition: Enumerator.StackComposite.hxx:23
 
This class implements an enumerator adapter for STL container based on iterators.
Definition: Enumerator.StlAdapter.hxx:23
 
This class defines a base class for all enumerator implementations and some predefined enumerators as...
Definition: Enumerator.hxx:24
 
static IEnumerator< T >::Ptr CreateMappedAdapter(TContainer &c)
Creates an enumerator adapter from the given STL map enumerating the mapped items.
Definition: Enumerator.StlAdapter.hxx:171
 
static IEnumerator< T >::Ptr CreateComposite(typename IEnumerator< T >::Ptr first, typename IEnumerator< T >::Ptr second)
Creates a composite enumerator from the two given enumerators, e.g. to enumerate trees easily.
Definition: Enumerator.Composite.hxx:122
 
Enumerator & operator=(Enumerator &&arg) noexcept
Move assignment operator.
 
static IEnumerator< T >::Ptr CreateKeysAdapter(TContainer &c)
Creates an enumerator adapter from the given STL map enumerating the keys.
Definition: Enumerator.StlAdapter.hxx:149
 
static IEnumerator< T >::Ptr CreateStlAdapter(TIterator begin, TIterator end)
Creates an enumerator adapter from the given STL iterators.
Definition: Enumerator.StlAdapter.hxx:116
 
TCurrent current
The current field of this enumerator.
Definition: Enumerator.hxx:86
 
Enumerator(Enumerator &&arg) noexcept
Move constructor.
 
static IEnumerator< T >::Ptr CreateEmpty(void)
Creates an empty enumerator.
Definition: Enumerator.Empty.hxx:77
 
static IEnumerator< T >::Ptr CreateFilter(typename IEnumerator< T >::Ptr source, Predicate predicate)
Creates a filtering adapter enumerating only the nodes matching a given predicate.
Definition: Enumerator.Filter.hxx:104
 
Enumerator(void)
Constructs a default Enumerator instance.
 
~Enumerator(void) override
Destructs this instance and frees all resources.
 
T GetCurrent(void) override
Gets the element at the current position.
Definition: Enumerator.hxx:113
 
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom.
Definition: IEnumerator.hxx:49
 
std::shared_ptr< IEnumerator > Ptr
The smart pointer type of this interface.
Definition: IEnumerator.hxx:52
 
Root namespace for the PLCnext API