8#include "Arp/System/Core/Enumerator.hxx" 
    9#include "Arp/Plc/Commons/Meta/IDataInfoProvider.hpp" 
   10#include "Arp/Plc/Commons/Meta/TypeSystem/DataInfoDeduction.hxx" 
   11#include "Arp/Plc/Commons/Esm/ProgramProviderBase.hpp" 
   12#include "Arp/Plc/Commons/Meta/ChangeDataInfoProvider.hpp" 
   16namespace Arp { 
namespace Plc { 
namespace Commons { 
namespace Esm
 
   18class ProgramComponentBase;
 
   21namespace Arp { 
namespace Plc { 
namespace Commons { 
namespace Meta
 
   25class ChangeDataInfoProvider;
 
   40    using Roots = std::map<String, DataInfo>;
 
   43    class RootsEnumerator : 
public Enumerator<const DataInfo&>
 
   46        RootsEnumerator(
const Roots& roots);
 
   49        bool        MoveNext(
void)
override;
 
   53        Roots::const_iterator   currentIterator;
 
   54        Roots::const_iterator   endIterator;
 
   55        bool                    isFirstMove = 
true;
 
   87    void    AddRoot(
const char* name, 
const T& value);
 
   94    void            AddDataInfo(
const DataInfo& dataInfo);
 
   95    void            EnsureValidName(
const DataInfo& dataInfo) 
const;
 
   96    void            RemoveDataInfo(
const String& localVariableName);
 
  110    this->AddDataInfo(getDataInfo(name, value));
 
This class defines a base class for all enumerator implementations and some predefined enumerators as...
Definition: Enumerator.hxx:24
 
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom.
Definition: IEnumerator.hxx:49
 
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
 
Definition: ProgramProviderBase.hpp:16
 
Root namespace for the PLCnext API