8 #include "Arp/System/Core/IEnumerator.hxx"
9 #include "Arp/Plc/Commons/Meta/DataInfo.hpp"
10 #include "Arp/Plc/Commons/Meta/ITypeNavigator.hpp"
14 namespace Arp {
namespace Plc {
namespace Commons {
namespace Meta
22 using Ptr = std::shared_ptr<StructNavigator>;
31 Enumerator(std::vector<DataInfo>& fieldInfos, std::vector<size_t>& offsets,
const byte* startAddress);
36 size_t GetCurrentOffset()
const;
39 std::vector<size_t>& offsets;
40 std::vector<DataInfo>& fieldInfos;
41 const byte* startAddress;
85 std::vector<DataInfo> fieldInfos;
86 std::vector<size_t> offsets;
87 bool isChanging =
false;
105 inline size_t StructNavigator::Enumerator::GetCurrentOffset(
void)
const
107 if (this->index < offsets.size())
109 return offsets[this->index];
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom.
Definition: IEnumerator.hxx:48
Root namespace for the PLCnext API