PLCnext API Documentation 25.0.2.69
IRscWriteEnumerator.hxx
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Rsc/Commons/RscType.hpp"
9
10namespace Arp::Base::Rsc::Commons
11{
12
13// forwards
14class RscArrayWriter;
15
18template<class T>
20{
21public: // usings
22 using Ptr = std::shared_ptr<IRscWriteEnumerator>;
23
24public: // canonical construction/destruction/assignment
26 IRscWriteEnumerator(void) = default;
32 IRscWriteEnumerator(IRscWriteEnumerator&& arg)noexcept = default;
42 virtual ~IRscWriteEnumerator(void) = default;
43
44public: // abstract operations
47 virtual void BeginWrite(size_t size = UndefinedArrayLength) = 0;
48
51 virtual void WriteNext(const T& current) = 0;
52
57 virtual RscArrayWriter WriteNext(size_t arraySize, RscType elementType) = 0;
58
60 virtual void EndWrite(void) = 0;
61
62public: // static properties
64 static constexpr size_t UndefinedArrayLength = std::numeric_limits<size_t>::max();
65};
66
67} // end of namespace Arp::Base::Rsc::Commons
Interface for writing an array enumeration or enumeration of unspefied length.
Definition: IRscWriteEnumerator.hxx:20
static constexpr size_t UndefinedArrayLength
Determines an undefined array length.
Definition: IRscWriteEnumerator.hxx:64
virtual ~IRscWriteEnumerator(void)=default
Destructs this instance and frees all resources.
std::shared_ptr< IRscWriteEnumerator > Ptr
The pointer type of this class.
Definition: IRscWriteEnumerator.hxx:22
virtual RscArrayWriter WriteNext(size_t arraySize, RscType elementType)=0
Writes the next enumeration value if the value contains an array object.
virtual void BeginWrite(size_t size=UndefinedArrayLength)=0
Begins the writing of the enumeration.
IRscWriteEnumerator(IRscWriteEnumerator &&arg) noexcept=default
The default move constructor.
virtual void EndWrite(void)=0
Ends this enumerator while all values shall be written if this is an array enumeration.
IRscWriteEnumerator(void)=default
The default constructor.
IRscWriteEnumerator & operator=(IRscWriteEnumerator &&arg) noexcept=default
The default move-assignment operator.
IRscWriteEnumerator & operator=(const IRscWriteEnumerator &arg)=delete
The deleted assignment operator.
IRscWriteEnumerator(const IRscWriteEnumerator &arg)=delete
The deleted copy constructor.
virtual void WriteNext(const T &current)=0
Writes the next enumeration value.
Helper class to write a dynamic array of primtive types from RscVariant. This class uses the array in...
Definition: RscArrayWriter.hpp:23