PLCnext API Documentation 25.0.2.69
TicFrame.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Core/PimplPtr.hxx"
9#include "Arp/Io/Commons/Configuration/TicBase.hpp"
10#include "Arp/Plc/Meta/Commons/BitSize.hpp"
11
12namespace Arp::Io::Commons::Data
13{
14class BufferInfo;
15}
16
17namespace Arp::Io::Commons::Configuration
18{
19
20class TicPort;
21
34class ARP_EXPORT TicFrame : public TicBase
35{
36public: // Impl forward declaration
37 class Impl;
38
39public: // usings
40 using Ptr = std::shared_ptr<TicFrame>;
41 using ConstPtr = std::shared_ptr<const TicFrame>;
42 using PortPtr = std::shared_ptr<TicPort>;
45
46public: // canonical construction/destruction/assignment
47 TicFrame(const TicFrame& arg) = delete;
48 TicFrame(TicFrame&& arg)noexcept;
49 TicFrame& operator=(const TicFrame& arg) = delete;
50 TicFrame& operator=(TicFrame&& arg)noexcept;
51 ~TicFrame(void)override;
52
53public: // construction
54 TicFrame(void);
55
56public: // static operations
57 static const char* GetTicElementName(void);
58
59public: // setter/getter operations
60 const String& GetFrameID(void)const noexcept;
61 BitSize GetLength(void)const noexcept;
62 const BufferInfo& GetBufferInfo(void)const;
63
64public: // operations
65 bool TryReadAttribute(TicReader& reader, const String& attributeName)final;
66 bool TryCreateElement(const String& elementName, ChildPtr& result)final;
67 void OnReadEnd(void)override;
68
69public: // Impl operations
70 Impl& GetImpl(void);
71 const Impl& GetImpl(void)const;
72
73private: // Impl usings
74 using Pimpl = PimplPtr<Impl>;
75
76private: // Impl fields
77 Pimpl pimpl;
78};
79
80} // end of namespace Arp::Io::Commons::Configuration
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 the base class for all predefined Tic elements.
Definition: TicBase.hpp:42
This class is used to read and store a single Tic frame element called IO:Frame.
Definition: TicFrame.hpp:35
~TicFrame(void) override
Default destructor.
TicFrame(void)
Default constructor.
TicFrame & operator=(TicFrame &&arg) noexcept
Default move-assignment operator.
TicFrame(TicFrame &&arg) noexcept
Default move constructor.
This class is used to read the content of Tic files.
Definition: TicReader.hpp:24
This class is used to store buffer parameters which are be used to create io buffer objects.
Definition: BufferInfo.hpp:19
This class represents a size of a variable
Definition: BitSize.hpp:16