PLCnext API Documentation 25.0.2.69
IRscReadEnumerator.hxx
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8
9namespace Arp::Base::Rsc::Commons
10{
11
12// forwards
13class RscArrayReader;
14
17template<class T>
19{
20public: // usings
21 using Ptr = std::shared_ptr<IRscReadEnumerator>;
22
23public: // canonical construction/destruction/assignment
25 IRscReadEnumerator(void) = default;
31 IRscReadEnumerator(IRscReadEnumerator&& arg)noexcept = default;
41 virtual ~IRscReadEnumerator(void) = default;
42
43public: // abstract operations
46 virtual size_t BeginRead(void) = 0;
47
51 virtual bool ReadNext(T& current) = 0;
52
56 virtual bool ReadNext(RscArrayReader& current) = 0;
57
60 virtual void EndRead(void) = 0;
61
62public:
64 static constexpr size_t UndefinedArrayLength = std::numeric_limits<size_t>::max();
65};
66
67} // end of namespace Arp::Base::Rsc::Commons
Interface for reading a arrays or enumerations.
Definition: IRscReadEnumerator.hxx:19
IRscReadEnumerator & operator=(IRscReadEnumerator &&arg) noexcept=default
The default move-assignment operator.
std::shared_ptr< IRscReadEnumerator > Ptr
The pointer type of this type.
Definition: IRscReadEnumerator.hxx:21
virtual ~IRscReadEnumerator(void)=default
Destructs this instance and frees all resources.
IRscReadEnumerator(void)=default
The default constructor.
IRscReadEnumerator(IRscReadEnumerator &&arg) noexcept=default
The default move constructor.
IRscReadEnumerator(const IRscReadEnumerator &arg)=delete
The deleted copy constructor.
virtual size_t BeginRead(void)=0
Begins to read the enumeration values.
virtual bool ReadNext(RscArrayReader &current)=0
Reads the next array object. Use this method only, if the current enumerated value contains an array ...
IRscReadEnumerator & operator=(const IRscReadEnumerator &arg)=delete
The deleted assignment operator.
virtual bool ReadNext(T &current)=0
Reads the next enumeration value.
static constexpr size_t UndefinedArrayLength
This constant is used to determine that an enumeration is not an array enumeration and hence has an u...
Definition: IRscReadEnumerator.hxx:64
virtual void EndRead(void)=0
Call this operation when all enumeration values has been read, to perform checks and cleanup.
Utility class to read an array of primitive types from RscVariant. This class uses the array informat...
Definition: RscArrayReader.hpp:22