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 typedef std::shared_ptr<StructNavigator>
Ptr;
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:47
Root namespace for the PLCnext API
IEnumerator & operator=(const IEnumerator &arg)=default
Assigns an IEnumerator instance.
unsigned char byte
The Arp character type.
Definition: PrimitiveTypes.hpp:23