PLCnext API Documentation 25.0.2.69
BufferInfo.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Core/PimplPtr.hxx"
9#include "Arp/Base/Core/Endianness.hpp"
10#include "Arp/Io/Commons/Data/BufferType.hpp"
11
12namespace Arp::Io::Commons::Data
13{
14
18class ARP_EXPORT BufferInfo
19{
20public: // Impl forward declaration
21 class Impl;
22
23public: // usings
24 using Ptr = std::shared_ptr<BufferInfo>;
25 using BufferSize = size_t;
26
27public: // canonical construction/destruction/assignment
29 BufferInfo(BufferInfo&& arg)noexcept;
33
34public: // construction
36 explicit BufferInfo(
37 const String& name,
38 BufferSize size = 0,
39 BufferType type = BufferType::Data,
40 Endianness endianness = Endianness::None);
41
42public: // setter/getter operations
43 const String& GetName(void)const;
44 BufferSize GetSize(void)const;
45 BufferType GetType(void)const;
46 Endianness GetEndianness(void)const;
47
48public: // operations
49
50public: // operators
51 ARP_EXPORT friend bool operator==(const BufferInfo& lhs, const BufferInfo& rhs);
52
53public: // Impl operations
54 Impl& GetImpl(void);
55 const Impl& GetImpl(void)const;
56
57private: // Impl usings
59
60private: // Impl fields
61 Pimpl pimpl;
62};
63
64} // end of namespace Arp::Io::Commons::Data
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
This class is used to store buffer parameters which are be used to create io buffer objects.
Definition: BufferInfo.hpp:19
BufferInfo & operator=(BufferInfo &&arg) noexcept
Default move-assignment operator.
BufferInfo & operator=(const BufferInfo &arg)
Default assignment operator.
~BufferInfo(void)
Default destructor.
BufferInfo(void)
Default constructor.
BufferInfo(const BufferInfo &arg)
Default copy constructor.
BufferInfo(BufferInfo &&arg) noexcept
Default move constructor.