PLCnext API Documentation 25.0.2.69
ArrayDimension.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Rsc/Commons/Rsc.hpp"
9#include "Arp/Base/Rsc/Commons/RscSerializable.hpp"
10
11namespace Arp { namespace Plc { namespace Commons { namespace Meta
12{
13
14using namespace Arp::Base::Rsc::Commons;
15using namespace Arp::Base::Rsc::Commons::Services;
16
19{
20public: // typedefs
21
22public: // construction/destruction
24 ArrayDimension(void) = default;
25 explicit ArrayDimension(size_t count);
26 ArrayDimension(uint32 count, int32 offset);
28 ArrayDimension(const ArrayDimension& arg) = default;
30 ArrayDimension(ArrayDimension&& arg) noexcept = default;
32 ArrayDimension& operator=(const ArrayDimension& arg) = default;
34 ArrayDimension& operator=(ArrayDimension&& arg) noexcept = default;
36 ~ArrayDimension(void) noexcept = default;
37
38public: // operators
39
40
41public: // setter/getter operations
42 uint32 GetCount(void)const;
43 int32 GetOffset(void)const;
44 static size_t GetCacheSize(void);
45
46public: // RscSerializable operations
47 void Serialize(RscWriter& writer)const;
48 void Deserialize(RscReader& reader);
49 static size_t GetFieldCount(void);
50
51private: // static methods
52
53private: // methods
54
55private: // fields
56 uint32 count = 0;
57 int32 offset = 0;
58
59private: // static fields
60
61};
62
63bool operator==(const ArrayDimension& lhs, const ArrayDimension& rhs);
64bool operator!= (const ArrayDimension& lhs, const ArrayDimension& rhs);
65bool operator< (const ArrayDimension& lhs, const ArrayDimension& rhs);
66std::ostream& operator<<(std::ostream& os, const ArrayDimension& rhs);
67
68}}}} // end of namespace Arp::Plc::Commons::Meta
69
71// template specialization of TypeIdentifier formatter
72template<> struct fmt::formatter<Arp::Plc::Commons::Meta::ArrayDimension>: public fmt::ostream_formatter {};
Any custom struct type which is intended to be marshalled in a Rsc serialization context,...
Definition: RscSerializable.hpp:35
Reads marshaled data of RSC services.
Definition: RscReader.hpp:34
Writes marshalled data of RSC services.
Definition: RscWriter.hpp:34
Provide array information.
Definition: ArrayDimension.hpp:19
int32 GetOffset(void) const
Get the index offset of the array for this vector element
Definition: ArrayDimension.cpp:47
uint32 GetCount(void) const
Get the number of array elements for this vector element.
Definition: ArrayDimension.cpp:40
~ArrayDimension(void) noexcept=default
Destructs this instance and frees all resources.
ArrayDimension & operator=(ArrayDimension &&arg) noexcept=default
Move assignment operator.
static size_t GetCacheSize(void)
Get the cache size
Definition: ArrayDimension.cpp:59
ArrayDimension(const ArrayDimension &arg)=default
Copy constructor.
ArrayDimension(void)=default
Constructs an ArrayDimension instance.
ArrayDimension(ArrayDimension &&arg) noexcept=default
Move constructor.
ArrayDimension & operator=(const ArrayDimension &arg)=default
Copy assignment operator.
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:33
std::int32_t int32
The Arp integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
Root namespace for the PLCnext API